Update popularize.lib.php

src
pfspx4a7z 2 months ago
parent c6a8da3dbc
commit 56affb386d

@ -1,6 +1,7 @@
<?php
namespace LaneWeChat\Core;
class Popularize{
class Popularize {
/**
* 生成带参数的二维码 - 第一步 创建二维码ticket
*
@ -14,25 +15,19 @@ class Popularize{
* @param int $expireSeconds 过期时间只在类型为临时二维码时有效。最大为1800单位秒
* @param int $sceneId 场景值ID临时二维码时为32位非0整型永久二维码时最大值为100000目前参数只支持1--100000
* @return array 返回创建二维码ticket的结果
* //获取的二维码ticket凭借此ticket可以在有效时间内换取二维码。
* "ticket"=>"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);
}
}
命名空间声明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请求将长链接转换为短链接以提高扫码速度和成功率。
Loading…
Cancel
Save