微信小程序参数传递并生成二维码的方法

作者 : 超级管理员 本文共2848个字,预计阅读时间需要8分钟 发布时间: 2021-08-5 共151人阅读

方法一:生成小程序带参方形的二维码

调用接口:【wxaapp/createwxaqrcode

 

【方形码】如图:官方给出的文档说的很简单,页没有个demo

实现代码如下:

根据微信官方的步骤;

第一步:要先获取调用API接口的accesstoken;

public function getAccessToken(){
$appid = '公司的小程序appid';
$secret = '公司的小程序sercret';
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
$res = json_decode($this->httpGet($url));
$access_token = @$res->access_token;
return $access_token;
}

第二步:请求微信获取二维码的接口:

官方文档如图:

参考代码:

$param['path'] = $data['path']."?pid=".trim($user['id']," ");
 $param['width'] = 150;
 $url = 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token='.$this->getAccesstoken();
 $json = json_encode($data);
 $result = httpRequest($url, "POST" ,$json);
 file_put_contents($qr_image, $result);

或者

public function getXcxCode(){
//获取access token
$ACCESS_TOKEN = $this->getAccessToken();
//创建二维码
$qcode ="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=".$ACCESS_TOKEN;
$param = json_encode(array("path"=>"pages/detail/detail?id=5084","width"=> 150));
$result = $this->httpRequest( $qcode, $param,"POST");
$path = 'uploads/qrcode/h.jpg';
file_put_contents($path, $result);
$return['status_code'] = 2000;
$return['msg'] = 'ok';
$return['img'] = 'https://公司域名.com/' . $path;
echo '<img src="'.$return['img'].'" />';exit;
echo json_encode($return);exit;
$base64_image ="data:image/jpeg;base64,".base64_encode( $result );
return '<image src='.$base64_image.'></image>';
}

方法二:生成小程序带参圆形的二维码

形码】

微信官方给的文档:【wxacode.getUnlimited

接接口地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html

虽然可以通过scene来传递很多的参数,但是在实际传参数的过程中页出现了很多问题,我之前传递的参数,他接受不到,虽然至生成了二维码,也跳转到了详情页面,就是个空页面,对应的房源id并没有传递过去。。。

请求参数scene也只做了简单说明

在scene参数这里也出现了很多问题,在网上找了好久的技术贴还是么有找到合适的demo.这也是我为什么非要下定决心去写这篇博客要去知道更多人的原因。

$param['scene'] = trim($user['id']," ");//用户ID
$param['width'] = $data['width'] ?? "";
$param['page'] = $data['path'] ?? "";

// 拼接微信服务端获取二维码需要的url
$url ='https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$this->getAccesstoken();
// $data['scene'] = input('scene');
// $data['width'] = input('width');
// $data['path'] = input('path');
$data['auto_color']=false;
//auto_color 为 false 时生效
$data['line_color']=['r'=>'0','g'=>'0','b'=>'0'];
// 是否有底色为true时是透明的
$data['is_hyaline']=false;
$json = json_encode($data);
$result = httpRequest($url, "POST" ,$json);

file_put_contents($qr_image, $result);

或者

public function xcxCode() {
$id = trim($this->request->param('id','5084','intval'));
$access_token = $this->getAccessToken();
$url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $access_token;
$data['scene'] = 'h' . $id;
//小程序的详情页路径
$data['path'] = 'pages/detail/detail';
//二维码大小
$data['width'] = '430';
$res = $this->http($url, json_encode($data),1);
$path = 'uploads/qrcode/h' . $id . '.jpg';
file_put_contents($path, $res);
$return['status_code'] = 2000;
$return['msg'] = 'ok';
$return['img'] = 'https://公司域名.com/' . $path;
echo '<img src="'.$return['img'].'" />';exit;
echo json_encode($return);exit;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本站所发布的资源均来源于互联网,仅限用于研究学习,不得将软件用于商业或者非法用途,否则一切后果请用户自负!如果侵犯了您的权益请与我们联系!您必须在下载后的24个小时之内,从您的手机和电脑中彻底删除。 如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请与我们联系处理!
互利网 » 微信小程序参数传递并生成二维码的方法

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整:可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

发表评论