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

由于业务场景需要,进入小程序自动实现某些功能,那么这时候我们就需要在进入小程序的时候携带一些参数。
比如做推广关系绑定,或者用户完成某项指标到小程序来领取红包奖励等。。。

微信小程序二维码官方文档地址https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html

php具体实现代码:

/*
 * 生成带参数的小程序二维码
 **/
public function getQRCode($auth)
{
    // 获取access_token
    $accessTokenObject = json_decode(file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . WxopenWechatConfig::$init_config_applet['appid'] . '&secret=' . WxopenWechatConfig::$init_config_applet['appsecret']));
    if (!isset($accessTokenObject->access_token)) {
        return false;
    }

    // 拼接微信服务端获取二维码需要的url
    $url = 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=' . $accessTokenObject->access_token;
    $data['auth'] = $auth;
    $data['path'] = "pages/index/index";
    $json = json_encode($data);
    $result = $this->api_notice_increment($url, $json);
    header('Content-Type: image/jpeg');
    echo $result;
    die;
}


public function api_notice_increment($url, $data)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $tmpInfo = curl_exec($ch);
    if (curl_errno($ch)) {
        curl_close($ch);
        return $ch;
    } else {
        curl_close($ch);
        return $tmpInfo;
    }
}

tip:
1:此种方式采用的微信生成二维码的方法一,数量有限,好处path长度够长128,能传递绝大部分加密后的信息
2:如果不需要加密,或者加密后字符串长度在32位以内,方法二是最好选择,生成数量没有限制。

最后附上进入小程序页面后参数接收方法:

onLoad: function (options) {
  this.getParamsCode(options);
},
//获取二维码参数
getParamsCode: function (options) {
  if (options.auth != undefined) {
    app.globalData.pcUserInfo = {auth: options.auth}
  }
},
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值