网站首页 » 微信开发 » 微信小程序菊花二维码生成

微信小程序菊花二维码生成

June 19, 2020 微信开发

最近在做生成生成微信小程序菊花二维码, 发现其中有一个坑, 在此记录。另外,深深鄙视某度上的搜索结果,都是瞎写的,没有一点实践精神的垃圾代码。

废话不多说,先来看看微信官方文档给的解释:

链接:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html#method-http
2020-06-19T02:59:01.png

先来看看问题1, 网上大多数人,肯能都将access_token 拼在了post data 参数中了,导致出现错误。

问题2, line_color 是个object 类型, 也就是个对象 。 刚开始博主没有意识到, 折腾了大概半小时,终于想明白是这里出了问题, 如何解决?

$line_color = [
'r' => 0,
'g' => 0,
'b' => 0
];
 
$line_color = json_decode(json_encode($line_color));

json_decode 后得到的就是object

以下上代码, 获取access_token 部分就不贴出来了。

   /**
     * 生成微信小程序分享二维码
     * Function getWxAcode
     * @author kevink
     * @return array
     * @param $fund_id         
     */
    public function getWxAcode($path, $param){
        $accessToken = $this->getAccessToken();
        if(!$accessToken){
            return ['code' => -1, 'msg' => '获取access_token失败'];
        }else {
            //生成二维码
            $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $accessToken;
            $color = [
                'r' => 0,
                'g' => 0,
                'b' => 0,
            ];
            $data = [
                'scene' => 'param=' . $param ,
                'page' => $path,
                'width' => '200',
                'auto_color' => false,  //自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
                'line_color' => json_decode(json_encode($color)),   //auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
                'is_hyaline' => true,   //是否需要透明底色,为 true 时,生成透明底色的小程序
            ];
            //方式二
            //$url2 = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" . $accessToken;
//            $data2 = [
//                'path' => 'pages/ranktab/index/index',
//                'width' => 280
//            ];
 
 
//            $color = [
//                'r' => 0 ,
//                'g' => 0,
//                'b' => 0,
//            ];
            //方式三
//            $url3 = "https://api.weixin.qq.com/wxa/getwxacode?access_token=$accessToken";
//            $data3 = [
//                'path' => 'pages/ranktab/index/index?product_id=33',
//                'width' => 280,
//                'auto_color' => false,
//                'line_color' => json_decode(json_encode($color)),
//                'is_hyaline' => false,
//            ];
 
            $backData = curl_post($url,  json_encode($data) );
            return $backData;
        }
    }

添加新评论