123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <?php
- namespace app\index;
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- header("Cache-Control: no-cache, must-revalidate");
- header("Pragma: no-cache");
- header("Content-type: text/html;charset=" . IN_CHARSET);
- use MingYuanYun\AppStore\Client;
- use MingYuanYun\AppStore\Exceptions\InvalidArgumentException;
- class super_ajax extends BaseUser
- {
- function initialize()
- {
- parent::initialize();
- $this->userlogined or reJSON("请先登录后再操作!", 404);
- }
- function set_status()
- {
- $_var_0 = SafeRequest("id", "post");
- $_var_1 = SafeRequest("status", "post");
- $_var_2 = db("super_cert")->where("id", $_var_0)->update(["status" => $_var_1]);
- reJSON($_var_2 ? "更改成功" : "没有做出更改", $_var_2 ? 200 : 404);
- }
- function del()
- {
- $_var_3 = SafeRequest("id", "post");
- $_var_4 = db("super_cert")->where("id", $_var_3)->find();
- $_var_5 = db("super_cert")->where("id", $_var_3)->delete();
- if ($_var_5) {
- certMoveToNew($_var_4);
- @creatdir(IN_CERT_PATH . bees_encrypt($_var_4["iss"]));
- db("ios_device")->where("cert_iss", $_var_4["iss"])->delete();
- }
- reJSON($_var_5 ? "删除成功" : "删除失败", $_var_5 ? 200 : 404);
- }
- function save()
- {
- $_var_6 = intval(SafeRequest("id", "post"));
- if ($_var_6) {
- $_var_7 = db("super_cert")->where("id", $_var_6)->find();
- $_var_8 = $_var_7["iss"];
- $_var_9 = $_var_7["kid"];
- $_var_10 = getCert($_var_8, $_var_9);
- } else {
- $_var_11 = SafeRequest("team_id", "post");
- if (!$_var_11) {
- reJSON("请输入账号", 404);
- }
- $_var_8 = SafeRequest("iss", "post");
- if (!$_var_8) {
- reJSON("请输入iss", 404);
- }
- $_var_9 = SafeRequest("kid", "post");
- if (!$_var_9) {
- reJSON("请输入kid", 404);
- }
- $_var_12 = $_FILES["p8"];
- if (!$_var_12) {
- reJSON("请上传p8证书", 404);
- }
- $_var_13 = $_var_12["name"];
- $_var_14 = pathinfo($_var_13);
- $_var_15 = strtolower($_var_14["extension"]);
- if ($_var_15 != "p8") {
- reJSON("请上传p8证书", 404);
- }
- $_var_16 = IN_CERT_PATH . $_var_8 . "/";
- if (!is_dir($_var_16)) {
- @mkdir($_var_16, 0777, true);
- }
- $_var_10 = IN_CERT_PATH . getCert($_var_8, $_var_9, $_var_15);
- @move_uploaded_file($_FILES["p8"]["tmp_name"], $_var_10);
- $_var_17 = SafeRequest("mark", "post");
- }
- if (!is_file($_var_10)) {
- reJSON("p8文件错误,请重新上传", 404);
- }
- if (!$_var_6 && ($_var_18 = db("super_cert")->where("iss", $_var_8)->find())) {
- reJSON("该证书已存在", 404);
- }
- $_var_19 = ["iss" => $_var_8, "kid" => $_var_9, "secret" => $_var_10];
- $_var_20 = new Client($_var_19);
- $_var_20->setHeaders(["Authorization" => "Bearer " . $_var_20->getToken()]);
- $_var_21 = $_var_20->api("certificates")->all(["filter[certificateType]" => "IOS_DISTRIBUTION"]);
- if (isset($_var_21["errors"][0]["status"])) {
- reJSON($_var_21["errors"][0]["title"], 404);
- }
- if (count($_var_21["data"]) < 2) {
- $_var_22 = $_var_20->api("certificates")->reg();
- if ($_var_22["data"]) {
- $_var_21["data"][] = $_var_22["data"];
- }
- }
- $_var_23 = 0;
- $_var_24 = "";
- foreach (array_reverse($_var_21["data"]) as $_var_25 => $_var_7) {
- $_var_26 = IN_CERT_PATH . getCert($_var_8, $_var_9, "cer");
- file_put_contents($_var_26, base64_decode($_var_7["attributes"]["certificateContent"]));
- $_var_27 = 123456;
- $_var_28 = IN_CERT_PATH . "public/ios.key";
- exec("openssl x509 -in " . $_var_26 . " -inform DER -outform PEM -out " . IN_CERT_PATH . getCert($_var_8, $_var_9, "pem") . " 2>&1", $_var_29, $_var_30);
- file_put_contents(IN_TMP_PATH . "supercert_add_openssl.log", $_var_29);
- exec("openssl pkcs12 -export -inkey " . $_var_28 . " -in " . IN_CERT_PATH . getCert($_var_8, $_var_9, "pem") . " -out " . IN_CERT_PATH . getCert($_var_8, $_var_9, "p12") . " -passout pass:" . $_var_27, $_var_29, $_var_30);
- file_put_contents(IN_TMP_PATH . "supercert_add_openssl2.log", $_var_29);
- if (file_get_contents(IN_CERT_PATH . getCert($_var_8, $_var_9, "p12"))) {
- $_var_23 = $_var_7["id"];
- $_var_24 = $_var_7["attributes"]["expirationDate"];
- break;
- }
- }
- if (!$_var_23) {
- reJSON("没有可使用的证数文件", 404);
- }
- $_var_31 = $_var_20->api("device")->all(["limit" => 200]);
- if (isset($_var_31["data"])) {
- foreach ($_var_31["data"] as $_var_25 => $_var_32) {
- if (!db("ios_device")->where("udid", $_var_32["attributes"]["udid"])->where("cert_iss", $_var_8)->count()) {
- db("ios_device")->insert(["app_id" => 0, "udid" => $_var_32["attributes"]["udid"], "cert_iss" => $_var_8]);
- }
- }
- $_var_33["total_count"] = $_var_31["meta"]["paging"]["total"];
- $_var_33["limit_count"] = 100 - $_var_33["total_count"];
- }
- $_var_33["expirationDate"] = $_var_24 ? strtotime($_var_24) : time();
- if ($_var_6) {
- $_var_33["tid"] = $_var_23;
- $_var_34 = db("super_cert")->where("id", $_var_6)->update($_var_33);
- } else {
- $_var_35 = SafeRequest("user_id", "post");
- $_var_33 = array_merge($_var_33, ["user_id" => $_var_35 ? $_var_35 : 0, "team_id" => $_var_11, "iss" => $_var_8, "kid" => $_var_9, "tid" => $_var_23, "mark" => $_var_17, "p8_file" => getCert($_var_8, $_var_9), "p12_file" => getCert($_var_8, $_var_9, "p12"), "p12_pwd" => $_var_27, "create_time" => time(), "status" => 1, "type" => 0]);
- $_var_34 = db("super_cert")->insert($_var_33);
- }
- reJSON($_var_6 ? "更新成功" : "生成成功", 200);
- }
- }
|