随笔 - 44  文章 - 1  评论 - 92  阅读 - 50133

PHP微信小程序生成带参二维码getwxacodeunlimit

老板最近有点飘了,他要在PC端的网站放一个微信小程序的二维码,并且扫描这个二维码以后要跳到小程序对应的房源详情页。

这是微信官方给出的文档,连接地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html

方法一:生成小程序带参二维码

【方形码】如图:官方给出的文档说的很简单,页没有个demo.可能是给大佬看的,像我这种一般的程序员看起来还是有点困难。

 

 

 

 

【系统环境】

小姐姐这边的系统环境是Linux系统,nginx的服务器,thinkPHP5.6的框架。

实现代码如下:

根据微信官方的步骤;

第一步:要先获取调用API接口的accesstoken;

复制代码
 1 public function getAccessToken(){
 2 
 3 $appid = '公司的小程序appid';
 4 
 5 $secret = '公司的小程序sercret';
 6 
 7 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
 8 
 9 $res = json_decode($this->httpGet($url));
10 
11 $access_token = @$res->access_token;
12 
13 return $access_token;
14 
15 }
复制代码

 第二步:请求微信获取二维码的接口:

官方文档如图:

 

小姐姐代码:

复制代码
public function getXcxCode(){

//获取access token

$ACCESS_TOKEN = $this->getAccessToken();

//创建二维码

$qcode ="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=".$ACCESS_TOKEN;

$param = json_encode(array("path"=>"pages/detail/detail?id=5084","width"=> 150));

$result = $this->httpRequest( $qcode, $param,"POST");

$path = 'uploads/qrcode/h.jpg';

file_put_contents($path, $result);

$return['status_code'] = 2000;

$return['msg'] = 'ok';

$return['img'] = 'https://公司域名.com/' . $path;

echo '<img src="'.$return['img'].'" />';exit;

echo json_encode($return);exit;

$base64_image ="data:image/jpeg;base64,".base64_encode( $result );

return '<image src='.$base64_image.'></image>';

}
复制代码

有个问题是,官方给的返回的二维码是一个base64的图片,但是这种图片在保存的时候很不方便,就需要我们把base64的图片转化成png.或者jpg格式的图片进行保存。

本以为这样子就可以大功告成,下班去约会了,窃喜中,

没想到😂在我实际操作的过程中的file_put_contents竟然给报错了,哇~~~~~~

 

不要慌张, 百度查了资料,这个是因为文件的读写权限问题,我们文件夹的权限通常是755,然后把文件夹权限修改成777就可以了。

说老板有点飘了,确实就是止不住了,方形的二维码嫌丑,非得让我搞一个圆形的漂亮一点的小程序码。。。。。

由于房源的数量比较多,所以就选择了wxacode.getUnlimited这个接口。

首先第一步同样的是先要获取access token;

同上,就不多说了;

微信官方给的文档:

 

 

虽然可以通过scene来传递很多的参数,但是在实际传参数的过程中页出现了很多问题,我之前传递的参数,他接受不到。

虽然至生成了二维码,也跳转到了详情页面,就是个空页面,对应的房源id并没有传递过去。。。

请求参数scene也只做了简单说明

 

 

看得小姐姐是一脸懵逼,在scene参数这里也出现了很多问题,在网上找了好久的技术贴还是么有找到合适的demo.

这也是我为什么非要下定决心去写这篇博客要去知道更多人的原因。

小姐姐的代码来喽

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public function xcxCode() {
 
$id = trim($this->request->param('id','5084','intval'));
 
$access_token = $this->getAccessToken();
 
$url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $access_token;
 
$data['scene'] = 'h' . $id;
 
//小程序的详情页路径
 
$data['path'] = 'pages/detail/detail';
 
//二维码大小
 
$data['width'] = '430';
 
$res = $this->http($url, json_encode($data),1);
 
$path = 'uploads/qrcode/h' . $id . '.jpg';
 
file_put_contents($path, $res);
 
$return['status_code'] = 2000;
 
$return['msg'] = 'ok';
 
$return['img'] = 'https://公司域名.com/' . $path;
 
echo '<img src="'.$return['img'].'" />';exit;
 
echo json_encode($return);exit;
 
}

  

小程序码经历千辛万苦终于出现在了我的面前。

小程序生成带参数的二维码【小程序的圆形码】保存成jpg图片上传到服务器

 

 

不知到会不会对后面看到的程序员们一点指引。也算是贡献一点余热了。哈哈哈哈

posted on   微凉今年一定早点睡  阅读(6025)  评论(8编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示