From 0be0f0bb26183861b9a58aa2a1a0ecc34da4a015 Mon Sep 17 00:00:00 2001 From: mlg6veufz <3318209438@qq.com> Date: Mon, 16 Dec 2024 21:30:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=96=87=E4=BB=B6popularize?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- popularize.lib.php | 78 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 popularize.lib.php diff --git a/popularize.lib.php b/popularize.lib.php new file mode 100644 index 0000000..b7d4297 --- /dev/null +++ b/popularize.lib.php @@ -0,0 +1,78 @@ +"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm3sUw==", + * //二维码的有效时间,以秒为单位。最大不超过1800。 + * "expire_seconds"=>60, + * //二维码图片解析后的地址,开发者可根据该地址自行生成需要的二维码图片 + * "url"=>"http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI" + * ) + */ + public static function createTicket($type, $expireSeconds, $sceneId){ + $queryUrl = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.AccessToken::getAccessToken(); + $queryAction = 'POST'; + $template = array(); + if($type == 1){ + $template['expire_seconds'] = $expireSeconds; + $template['action_name'] = 'QR_SCENE'; + }else{ + $template['action_name'] = 'QR_LIMIT_SCENE'; + } + $template['action_info']['scene']['scene_id'] = $sceneId; + $template = json_encode($template); + return Curl::callWebServer($queryUrl, $template, $queryAction); + } + + /** + * 生成带参数的二维码 - 第二步 通过ticket换取二维码 + * @param $ticket Popularize::createTicket()获得的 + * @param $filename String 文件路径,如果不为空,则会创建一个图片文件,二维码文件为jpg格式,保存到指定的路径 + * @return 直接echo本函数的返回值,并在调用页面添加header('Content-type: image/jpg');,将会展示出一个二维码的图片。 + */ + public static function getQrcode($ticket, $filename=''){ + $queryUrl = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.urlencode($ticket); + $queryAction = 'GET'; + $result = Curl::callWebServer($queryUrl, '', $queryAction, 0); + if(!empty($filename)){ + file_put_contents($filename, $result); + } + return $result; + } + + /** + * 将一条长链接转成短链接。 + * 主要使用场景:开发者用于生成二维码的原链接(商品、支付二维码等)太长导致扫码速度和成功率下降,将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率。 + * @param $longUrl String 需要转换的长链接,支持http://、https://、weixin://wxpay 格式的url + * @return array('errcode'=>0, 'errmsg'=>'错误信息', 'short_url'=>'http://t.cn/asdasd')错误码为0表示正常 + */ + public static function long2short($longUrl){ + $queryUrl = 'https://api.weixin.qq.com/cgi-bin/shorturl?access_token='.AccessToken::getAccessToken(); + $queryAction = 'POST'; + $template = array(); + $template['long_url'] = $longUrl; + $template['action'] = 'long2short'; + return Curl::callWebServer($queryUrl, '', $queryAction); + } +} \ No newline at end of file