背景
- 当前鄙人接手的项目,需要在设备机器上展示 小程序二维码 为了记录扫码用户从哪台机器注册的 那么,实现方案就是:在小程序码中,绑定设备编号参数 在此,记录一番实现步骤 …
小程序开发文档 -
【 获取不限制的小程序码 】
实现步骤
①. 分析步骤
代码语言:javascript复制1. 获取 Access Token
注意:access_token 在获取时,要根据自己的业务需求,可以考虑存储到 redis、mysql (7200秒内)
2. 根据小程序 APPID、APPSECRET - 获取不限制的小程序码
主要请求参数: page、scene、width
3. 将获得的小程序码,进行位置存储,方便后期查看使用
②. 代码实例
代码语言:javascript复制 /**
* @Notes:获取 access_token
* @return bool|string
* @User: zhanghj
* @DateTime: 2023-10-16 16:21
*/
public function getAccessToken(){
$appid = 'XXXXXXXXXX'; //APPID
$secret = 'XXXXXXXXXXXXXXXXXXXXXXX'; //APPSECRET
$urlss = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlss);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output??'';
}
/**
* @Notes:生成 小程序码
* @param $mini_page_link
* @param int $img_tag
* @return string
* @User: zhanghj
* @DateTime: 2023-10-16 16:48
*/
public function generateToMiniCode($mini_page_link,$img_tag = 0){
$mini_code_img = dirname(Yii::$app->basePath) . '/backend/web/upload/mini_code/' . $img_tag . '.png';
$access_token = $this->getAccessToken();
$tk = json_decode($access_token)->access_token;
$urlss = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$tk;
$ch = curl_init();
$_pageData = [
"page"=> $mini_page_link, //例如:pages/home/index
"scene"=>"device_id={$img_tag}", //参数绑定
"width" => 120 //宽度
];
$datass = json_encode($_pageData);
curl_setopt($ch, CURLOPT_URL, $urlss);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $datass);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
$output1 = curl_exec($ch);
curl_close($ch);
file_put_contents($mini_code_img, $output1, true);
return $this->imgHost . '/mini_code/' . $img_tag . '.png';
}
③. 实现结果
- 所得小程序码,截图如下:
- 提示:
小程序端,开发人员通过对所配置页的初始化加载,
提取参数
"scene"
,以方便后期的业务处理 … 对于Linux 系统,使用file_put_content()
有时会有操作权限的影响,可以使用chmod 777 -R
进行权限赋值
附录
参考文章
- PHP生成带参数的小程序码
- PHP生成带参数的微信小程序的二维码
使用技巧
- 转换成base64编码
$imgUrl = 'data:image/jpg;base64,'.base64_encode($output1);
- 直接在页面显示为图片
header("Content-type: image/jpg;charset=gb2312");
echo $output1;
- 保存为图片
$url = "test.jpg";
file_put_contents($url, $output1, true);