php生成小程序二维码乱码怎么办

藏色散人
发布: 2021-12-02 09:39:05
原创
4677人浏览过
php生成小程序二维码乱码的解决办法:1、获取微信token;2、添加“base64_encode($res);”;3、获取二维码参数;4、请求后台交互,并将参数传过去即可。

php生成小程序二维码乱码怎么办

本文操作环境:windows7系统、PHP7.4版、DELL G3电脑

php生成小程序二维码乱码怎么办?

php微信小程序生成二维码,出现乱码,{"errcode":44002,"errmsg":"empty post data"},'{"errcode":41001,"errmsg":"access_token missing hint: [OoC.2a0822e255]"}',以及其他的坑 

微信小程序的坑简直比我的头发还多,今天下午获取微信二维码,遇到的44002,41001,还有图片没法正常显示以及小程序参数获取的问题,接下来一一解决 

立即学习PHP免费学习笔记(深入)”;

 首先获取微信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就会出现乱码的问题 仔细看文档的同学可能就知道 这是因为微信会返回图片二进制内容
登录后复制

  

  妈的 简直不要太坑啊  

码上飞
码上飞

码上飞(CodeFlying) 是一款AI自动化开发平台,通过自然语言描述即可自动生成完整应用程序。

码上飞 138
查看详情 码上飞
$data = 'data:image/jpeg;base64,'.base64_encode($res);//补全base64加密字符串头
$html = "<!DOCTYPE html>
        <html lang='en'>
        <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‘,

    尼玛,这个小程序简直不要太坑

 推荐学习:《PHP视频教程

以上就是php生成小程序二维码乱码怎么办的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号