PHP生成小程序二维码乱码怎么办
3105
php生成小程序二维码乱码的解决办法:1、获取微信token;2、添加“base64_encode($res);”;3、获取二维码参数;4、请求后台交互,并将参数传过去即可。
php生成小程序二维码乱码怎么办?
php微信小程序生成二维码,出现乱码,
{"errcode":44002,"errmsg":"empty post data"},'{"errcode":41001,"errmsg":"access_token missing hint: [OoC.2a0822e255]"}
以及其他的坑
微信小程序的坑简直比我的头发还多,今天下午获取微信二维码,遇到的44002,41001,还有图片没法正常显示以及小程序参数获取的问题,接下来一一解决
首先获取微信token然后再获取二维码这个没什么好说的 直接上代码
public function getQRcode() { $appid = ''; $secret = ''; $access_token = json_decode(file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret),true)['access_token']; $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=$access_token"; $ch = curl_init(); $data = json_encode(['scene' => '&id='.$this->user_id]); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER, 'image/gif'); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data) )); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //如果需要将结果直接返回到变量里,那加上这句。 $res = curl_exec($ch); }
虽然已经获取到了小程序二维码 但是此时打印$res
就会出现乱码的问题 仔细看文档的同学可能就知道 这是因为微信会返回图片二进制内容
简直不要太坑啊
$data = 'data:image/jpeg;base64,'.base64_encode($res);//补全base64加密字符串头 $html = "<!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>二维码</title> </head> <body> <img src='$data'> </body> </html>"; echo $html; exit;
在代码上加上这一句 可以转换 直接输出图片
ok,二维码已经出来了 接下来就是获取二维码参数 比如参数为id=1
获取二维码参数还是比较简单的 微信二维码指向首页
然后在index.js编写
然后请求后台交互 将参数传过去 ,本来后台接口已经写好了 我想今天的工作可以告一段段落了,尼玛没想到检查数据的时候发现id根本没有获取到
在本地测试的时候可以
这样操作开发工具 就会获取到参数 接着去后台打印的时候你就会发现你传过去的参数根本不是1,而是{'id':'1'}
,我日 就没遇到过他们这种的
所以如果本地测试的话还得需要进行一下操作 兄弟我是直接被征服了 随便截取了一下1前边的7个字符 后边的2个字符 这样才得到完整 1
本文网址:https://www.zztuku.com/index.php/detail-10282.html
站长图库 - PHP生成小程序二维码乱码怎么办
申明:如有侵犯,请 联系我们 删除。
您还没有登录,请 登录 后发表评论!
提示:请勿发布广告垃圾评论,否则封号处理!!