From 56affb386da27f38f90f7c047e691f8b0c4d849b Mon Sep 17 00:00:00 2001 From: pfspx4a7z <2942132918@qq.com> Date: Wed, 8 Jan 2025 21:03:28 +0800 Subject: [PATCH] Update popularize.lib.php --- core/popularize.lib.php | 45 +++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/core/popularize.lib.php b/core/popularize.lib.php index 670f621..84a5bda 100644 --- a/core/popularize.lib.php +++ b/core/popularize.lib.php @@ -1,6 +1,7 @@ "gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm3sUw==", - * //二维码的有效时间,以秒为单位。最大不超过1800。 - * "expire_seconds"=>60, - * //二维码图片解析后的地址,开发者可根据该地址自行生成需要的二维码图片 - * "url"=>"http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI" */ - public static function createTicket($type, $expireSeconds, $sceneId){ + public static function createTicket($type, $expireSeconds, $sceneId) { // 拼接请求URL,使用AccessToken::getAccessToken()获取access_token - $queryUrl = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.AccessToken::getAccessToken(); + $queryUrl = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=' . AccessToken::getAccessToken(); // 请求方法为POST $queryAction = 'POST'; // 初始化模板数组 $template = array(); // 根据二维码类型设置模板参数 - if($type == 1){ + if ($type == 1) { $template['expire_seconds'] = $expireSeconds; // 设置临时二维码的有效时间 $template['action_name'] = 'QR_SCENE'; // 设置动作名称为QR_SCENE - }else{ + } else { $template['action_name'] = 'QR_LIMIT_SCENE'; // 设置动作名称为QR_LIMIT_SCENE } // 设置场景ID @@ -49,15 +44,15 @@ class Popularize{ * @param string $filename 文件路径,如果不为空,则会创建一个图片文件,二维码文件为jpg格式,保存到指定的路径 * @return string 直接echo本函数的返回值,并在调用页面添加header('Content-type: image/jpg');,将会展示出一个二维码的图片。 */ - public static function getQrcode($ticket, $filename=''){ + public static function getQrcode($ticket, $filename='') { // 拼接请求URL,使用urlencode()对ticket进行URL编码 - $queryUrl = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.urlencode($ticket); + $queryUrl = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . urlencode($ticket); // 请求方法为GET $queryAction = 'GET'; // 调用Curl::callWebServer()方法发送请求并获取结果 $result = Curl::callWebServer($queryUrl, '', $queryAction, 0); // 如果指定了保存文件名,则将结果保存到文件 - if(!empty($filename)){ + if (!empty($filename)) { file_put_contents($filename, $result); } // 返回二维码图片内容或保存结果 @@ -70,21 +65,27 @@ class Popularize{ * 将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率。 * @param string $longUrl 需要转换的长链接,支持http://、https://、weixin://wxpay 格式的url * @return array 返回短链接结果 - * 'errcode'=>0, 'errmsg'=>'错误信息', 'short_url'=>'http://t.cn/asdasd' - * 错误码为0表示正常 */ - public static function long2short($longUrl){ + public static function long2short($longUrl) { // 拼接请求URL,使用AccessToken::getAccessToken()获取access_token - $queryUrl = 'https://api.weixin.qq.com/cgi-bin/shorturl?access_token='.AccessToken::getAccessToken(); + $queryUrl = 'https://api.weixin.qq.com/cgi-bin/shorturl?access_token=' . AccessToken::getAccessToken(); // 请求方法为POST $queryAction = 'POST'; // 初始化模板数组 $template = array(); // 设置长链接 $template['long_url'] = $longUrl; - // 设置动作名称为long2short - $template['action'] = 'long2short'; // 调用Curl::callWebServer()方法发送请求并返回结果 - return Curl::callWebServer($queryUrl, '', $queryAction); + return Curl::callWebServer($queryUrl, json_encode($template), $queryAction); } -} \ No newline at end of file +} +命名空间声明:namespace LaneWeChat\Core; 定义了类的命名空间,表明这个类属于LaneWeChat模块的核心部分。 +类定义:class Popularize 定义了一个用于生成带参数的二维码和长链接转换的类。 +createTicket方法:创建二维码ticket。根据二维码类型(临时或永久)设置参数,并发送POST请求获取ticket。 +getQrcode方法:通过ticket换取二维码。发送GET请求获取二维码图片,并可选择保存到文件。 +long2short方法:将长链接转换为短链接。发送POST请求将长链接转换为短链接,以提高扫码速度和成功率。 +命名空间声明:namespace LaneWeChat\Core; 定义了类的命名空间,表明这个类属于LaneWeChat模块的核心部分。 +类定义:class Popularize 定义了一个用于生成带参数的二维码和长链接转换的类。 +createTicket方法:创建二维码ticket。根据二维码类型(临时或永久)设置参数,并发送POST请求获取ticket。 +getQrcode方法:通过ticket换取二维码。发送GET请求获取二维码图片,并可选择保存到文件。 +long2short方法:将长链接转换为短链接。发送POST请求将长链接转换为短链接,以提高扫码速度和成功率。 \ No newline at end of file