PHP生成微信小程序带参数的二维码,可生成带参数二维码
本文档从服务端讲起,开发语言为php
获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制。 更多用法详见 获取二维码。
HTTPS 调用
请求地址
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
请求参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
access_token / cloudbase_access_token | string | 是 | 接口调用凭证 | |
scene | string | 是 |
最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~ ,其它字符请自行编码为合法字符(因不支持% ,中文无法使用 urlencode 处理,请使用其他编码方式)
|
|
page | string | 主页 | 否 |
页面 page,例如 pages/index/index ,根路径前不要填加 / ,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
|
check_path | boolean | true | 否 |
检查 page 是否存在,为 true 时 page 必须是已经发布的小程序存在的页面(否则报错);为 false 时允许小程序未发布或者 page 不存在, 但 page 有数量上限(60000个)请勿滥用
|
env_version | string | "release" | 否 |
要打开的小程序版本。正式版为 release ,体验版为 trial ,开发版为 develop
|
width | number | 430 | 否 | 二维码的宽度,单位 px,最小 280px,最大 1280px |
auto_color | boolean | false | 否 | 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false |
line_color | Object | {"r":0,"g":0,"b":0} | 否 |
auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
|
is_hyaline | boolean | false | 否 | 是否需要透明底色,为 true 时,生成透明底色的小程序 |
返回值
Buffer
返回的图片 Buffer
异常返回
Object
JSON
属性 | 类型 | 说明 |
---|---|---|
errcode | number | 错误码 |
errmsg | string | 错误信息 |
注意这里--返回值说明
如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回 JSON 格式的数据。如果你没有获取到二进制的base64二维码图片信息,说明接口出错了,请从access_token 或者 参数方面检查。
下面列举具体代码
//配置APPID、APPSECRET
$APPID = $res['key'];
$APPSECRET = $res['secret'];
$userId = $_GET['userId'];
//获取access_token
$access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$APPID}&secret={$APPSECRET}";
//缓存access_token
session_start();
$_SESSION['access_token'] = "";
$_SESSION['expires_in'] = 0;
$ACCESS_TOKEN = "";
if(!isset($_SESSION['access_token']) || (isset($_SESSION['expires_in']) && time() > $_SESSION['expires_in']))
{
$json = httpRequest( $access_token );
$json = json_decode($json,true);
$_SESSION['access_token'] = $json['access_token'];
$_SESSION['expires_in'] = time()+7200;
$ACCESS_TOKEN = $json["access_token"];
}
else{
$ACCESS_TOKEN = $_SESSION["access_token"];
}
//构建请求二维码参数
//path是扫描二维码跳转的小程序路径,可以带参数?id=xxx
//width是二维码宽度
$qcode ="https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={$ACCESS_TOKEN}";
$param = json_encode(array("scene"=>"user_id={$userId}","page"=>"pages/home_index/index","check_path"=>false,"env_version"=>"release","width"=> 150,"is_hyaline"=>true));
//POST参数
$result = httpRequest( $qcode, $param,"POST");
//生成二维码
// file_put_contents("qrcode.png", $result);
$base64_image ="data:image/jpeg;base64,".base64_encode( $result );
$this->result(0, '成功', ['qrcode'=>$base64_image,'wxName'=>$SystemSet['wxName']]);
//把请求发送到微信服务器换取二维码
function httpRequest($url, $data='', $method='GET'){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
if($method=='POST')
{
curl_setopt($curl, CURLOPT_POST, 1);
if ($data != '')
{
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
}
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
扫码看下效果你就知道了,也可自定义小程序跳转地址,小程序内提供获取到参数后如何解析获取二维码中的参数
PHP生成微信小程序带参数的二维码,可生成带参数二维码相关推荐
- 生成微信小程序二维码(携带参数跳转指定页面)
需求:生成微信小程序二维码并携带参数,扫码跳转指定页面 获取WxMaService对象 WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl ...
- C#生成微信小程序文章二维码
/// <summary>/// 获取access_token/// </summary>/// <returns></returns>[HttpGet ...
- Java生成微信小程序二维码,5种实现方式,一个比一个简单
文章目录 前言 先看官网 一.JDK自带的URLConnection方式 二.Apache的HttpClient方式 三.okhttp3方式 四.Unirest方式 五.RestTemplate方式 ...
- Java生成微信小程序二维码
Java生成微信小程序二维码 import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.Byt ...
- 【java】Java生成微信小程序二维码
文章目录 前言 应用场景 微信小程序官网 1.RestTemplate方式 核心代码 getAccessToken 2. Unirest方式 Maven依赖 核心代码 3. okhttp3方式 Mav ...
- 微信小游戏开发入门(二)-用CocosCreator官方Demo生成微信小游戏
微信已经放出小游戏的开发工具包,虽然功能尚未完善,但已经可以开发调试了.我们使用CocosCreator官方的polished_project例子来讲解如何生成微信小游戏. 1.下载polished_ ...
- 微信小程序连接阿里云物联网平台操控设备(IOT)二
文章导航: 微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云 微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一) 微信小程序连接阿里云物联网平台操控设备(IOT)三 ...
- 开发微信小程序,就是这么简单!可自动生成微信小程序源代码,配套JS SDK、接口和后台
开发微信小程序,就是这么简单!自己动手,丰衣足食! 开发微信小程序有多简单? 你只需要掌握前端开发,就可以轻松开发自己的微信小程序,实现自己的业务功能.借助果创云,无须域名.无须服务器.无须数据库, ...
- (已更新)趣味制作生成微信小程序源码下载-安装简单方便
这是一个diy类型的制作生成小程序源码 里面有多种素材生成,可以用来娱乐吧! 比如有的类型如:退出酒场告知书,喝酒认怂书,等等 小程序安装的话还是挺方便的,特别适合新手 PS:里面的二维码的话小编替换 ...
最新文章
- (转)动态SQL和PL/SQL的EXECUTE IMMEDIATE选项
- Ubuntu ADSL 拨号上网时断时续问题
- 【数据库】MongoDB数据库的操作及练习
- starting mysql. success!_启动mysql报错解决问题过程
- ajax 异步插入图片到数据库(多图上传)
- webpack devserver配置_在webpack中使用babel
- 音视频开发(37)---麦克风阵列语音增强(二)
- 安卓app可以用python写吗_安卓app可以用python写吗
- IBM核心软件如何应对“互联网+”的技术挑战
- Java基础编程机试题
- 七号信令:信令网基本概念
- 推荐一款待办事项和日程管理的微信小程序——腾讯待办
- java word excel_java读取WORD/EXCEL模板转换生成新WORD/EXCEL文档
- 山东教师教育网-山东教育志愿者服务网
- 做到这一点,帮你每年多赚10万!
- 短期工作经历到底要不要写到简历上?
- 局部(x,y)坐标 转 WGS84经纬度坐标
- 数据分析师需要考试或考证吗?
- Android使用七牛实现录像加时间水印和拍照(截帧回调)
- 计算机无法识别平板电脑,平板电脑连接电脑没反应怎么办【图解】
热门文章
- O2耳放 DIY 模拟放大
- fix: brew: Permission denied @ apply2files - /usr/local/lib/node_modules/webpack/es/ters-brow
- 你是不是傻,怎么不选最好的?
- mysql必知必会读书笔记就——联结表、高级联结
- 2016年的不正式总结
- 阿里云 SDK 动态IP域名解析
- 发生系统错误1067
- iOS获取App ipa包以及资源文件-----本人亲自测试可用!!!
- ola2672978400 oj最短路径
- android微信支付毁掉,android微信支付 需要注意的坑