diff --git a/Application/Qrcode/Controller/QrCodePromotionController.class.php b/Application/Qrcode/Controller/QrCodePromotionController.class.php index fc9c8ee7d..9e654c926 100644 --- a/Application/Qrcode/Controller/QrCodePromotionController.class.php +++ b/Application/Qrcode/Controller/QrCodePromotionController.class.php @@ -204,8 +204,7 @@ class QrCodePromotionController extends BaseController if ($id > 0) { $uniqueStr = $this->getUniqueStr(); $h5Link = ($isHttps? 'https://': 'http://').$_SERVER['HTTP_HOST']."/index.php?s=/Qrcode/Jump/jumpMp/{$uniqueStr}"; - $expireDate = date('Y-m-d', strtotime("+30 day")); - $shortLink = $this->getShortUrl($h5Link, $expireDate); + $shortLink = $this->getShortUrl($h5Link); M('qrcode_promotion_list', 'tab_')->where(['id' => $id])->save([ 'unique_str' => $uniqueStr, @@ -250,10 +249,12 @@ class QrCodePromotionController extends BaseController if (!$id) return ; if (IS_POST) { +// var_dump(json_encode(I('post.img'), JSON_FORCE_OBJECT));die; M('qrcode_promotion_list', 'tab_')->where([ "id" => $id ])->save([ - 'interval_min' => I('post.interval_min') + 'interval_min' => I('post.interval_min'), + 'qrcode_img' => json_encode(I('post.img'), JSON_FORCE_OBJECT) ]); $this->ajaxReturn(['status' => 1, 'message' => '保存成功!']); } @@ -261,7 +262,9 @@ class QrCodePromotionController extends BaseController $qrcodePromotionList = M('qrcode_promotion_list', 'tab_')->where([ "id" => $id ])->find(); + $imgs = json_decode($qrcodePromotionList['qrcode_img'], true); + $this->assign('imgs', $imgs); $this->assign('id', $id); $this->assign('qp_id', $qrcodePromotionList['qp_id']); $this->assign('interval_min', $qrcodePromotionList['interval_min']); @@ -280,6 +283,7 @@ class QrCodePromotionController extends BaseController public function linkLists() { + $this->getShortUrl('https://mg.wmtxkj.com'); $page = I('p', 1); $row = I('row', 10); $qpId = I('get.id', 0); @@ -312,23 +316,67 @@ class QrCodePromotionController extends BaseController $this->display(); } - public function getShortUrl($long_url, $expire_date) + public function getShortUrl($longUrl) { - $url = urlencode($long_url); - $key = "612a01db7889bec5e0d0d2d81f@df6cdda6eb39c505f08848f714b0433e"; - $request_url = "http://api.3w.cn/api.htm?format=json&url={$url}&key={$key}&expireDate={$expire_date}&domain=0"; - $result_str = file_get_contents($request_url); + $shortUrl = ''; + $host = "https://encsholin.market.alicloudapi.com"; + $path = "/shortlink"; + $method = "GET"; + $appcode = "783dde1552fa412293c56f9ad875579b";//开通服务后 买家中心-查看AppCode + $headers = array(); + array_push($headers, "Authorization:APPCODE " . $appcode); + $querys = "password=&url={$longUrl}"; + $url = $host . $path . "?" . $querys; + + $curl = curl_init(); + curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); + curl_setopt($curl, CURLOPT_FAILONERROR, false); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + curl_setopt($curl, CURLOPT_HEADER, true); + if (1 == strpos("$" . $host, "https://")) { + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + } + $out_put = curl_exec($curl); - $url = ""; - if ($result_str) { - $result_arr = json_decode($result_str, true); + $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); - if ($result_arr && $result_arr['code'] == "0") { - $url = $result_arr['url']; + list($header, $body) = explode("\r\n\r\n", $out_put, 2); + if ($httpCode == 200) { + $url = json_decode($body, true); + $shortUrl = $url['url']; + if (!$shortUrl) $shortUrl = $url['msg']; + } else { + if ($httpCode == 400 && strpos($header, "Invalid Param Location") !== false) { + $shortUrl = ("参数错误"); + } elseif ($httpCode == 400 && strpos($header, "Invalid AppCode") !== false) { + $shortUrl = ("AppCode错误"); + } elseif ($httpCode == 400 && strpos($header, "Invalid Url") !== false) { + $shortUrl = ("请求的 Method、Path 或者环境错误"); + } elseif ($httpCode == 403 && strpos($header, "Unauthorized") !== false) { + $shortUrl = ("服务未被授权(或URL和Path不正确)"); + } elseif ($httpCode == 403 && strpos($header, "Quota Exhausted") !== false) { + $shortUrl = ("套餐包次数用完"); + } elseif ($httpCode == 500) { + $shortUrl = ("API网关错误"); + } elseif ($httpCode == 0) { + $shortUrl = ("URL错误"); + } else { + $shortUrl .= ("参数名错误 或 其他错误"); + $shortUrl .= ($httpCode); + $headers = explode("\r\n", $header); + $headList = array(); + foreach ($headers as $head) { + $value = explode(':', $head); + $headList[$value[0]] = $value[1]; + } + $shortUrl .= ($headList['x-ca-error-message']); } } - return $url; + return $shortUrl; } } \ No newline at end of file diff --git a/Application/Qrcode/View/default/QrCodePromotion/linkAdd.html b/Application/Qrcode/View/default/QrCodePromotion/linkAdd.html index 706b9ffb7..a542d6f51 100644 --- a/Application/Qrcode/View/default/QrCodePromotion/linkAdd.html +++ b/Application/Qrcode/View/default/QrCodePromotion/linkAdd.html @@ -94,8 +94,9 @@ } var id = $("#qp_id").val(); - var imgs = $("#form_link_add").serialize(); - if (!imgs) { + var data = $("#form_link_add").serialize(); + + if (!$(".images").val()) { return layer.msg('二维码不能为空') } @@ -103,7 +104,7 @@ url: '{:U("linkAdd")}', type: 'post', dataType: 'json', - data: imgs, + data: data, success: function(result) { if (result.status == 1) { layer.msg(result.message) diff --git a/Application/Qrcode/View/default/QrCodePromotion/linkEdit.html b/Application/Qrcode/View/default/QrCodePromotion/linkEdit.html index 8d08f31c5..a1719e7b1 100644 --- a/Application/Qrcode/View/default/QrCodePromotion/linkEdit.html +++ b/Application/Qrcode/View/default/QrCodePromotion/linkEdit.html @@ -16,6 +16,21 @@