获取带参数的小程序二维码

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

php具体实现代码:

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

    // 拼接微信服务端获取二维码需要的url
    $url = 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=' . $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. **授权获取用户信息**: 首先,你需要在小程序的`app.json`文件中配置权限,允许获取用户的临时code用于换取access_token。 ```json { "permissions": { "scope.userInfo": { "desc": "用于获取用户信息" } }, ... } ``` 2. **统一下单接口**: 使用`wx.request`或其他官方推荐的方式调用微信的`genQrcodeticket`接口,传入必要的参数,如小程序ID(appid)、页面路径、是否加密等。 ```javascript wx.request({ url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN', data: { actionName: 'pages/index/index', // 小程序页面路径 .scene: 'scene_' + Math.random() * 10000, // 可自定义场景值,便于统计分析 pagePath: '/pages/index/index', // 如果是异步加载的页面,需提供完整的路径 width: 430, // 图片宽度,建议大于200px height: 890, // 图片高度,建议大于200px expireIn: 604800, // 过期时间,默认7天 }, method: 'POST', header: { 'content-type': 'application/json' }, success: function(res) { var result = res.data.ticket; // 打印或保存二维码票根 wx.showModal({ title: '分享二维码', content: '您的二维码:', showCancel: false, imageUrl: `https://mp.weixin.qq.com/qrcode?size=120x120&expire=0&action_name=QR_SCENE&scene=${result.scene}&tk=` + result.ticket }); }, fail: function(err) { console.error('请求失败:', err); } }) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值