微信接口生成带参数的二维码


Posted in PHP onJuly 31, 2017

为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。

用户扫描带场景值二维码时,可能推送以下两种事件:

(1)如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。

(2)如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。

获取带参数的二维码的过程包括两步:(I)首先创建二维码ticket;(II)然后凭借ticket到指定URL换取二维码。

(I)首先创建二维码ticket

每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id)。

/** 
 * 首先创建二维码ticket 
 * @param string $sceneid 场景值ID 
 * @param string $type 值为'temp'的时候生成临时二维码 
 * @param string $expire_seconds 二维码过期时间 
 * @return string 二维码ticket 
 */ 
public function _getTicket($sceneid,$type='temp',$expire_seconds=604800){ 
 if($type=='temp'){ 
  $data = '{"expire_seconds": %s, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": %s}}}'; 
  $data = sprintf($data,$expire_seconds,$sceneid); 
 }else{ 
  $data = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": %s}}}'; 
  $data = sprintf($data,$sceneid); 
 } 
 $curl = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.$this->_getAccessToken(); 
 $content = $this->_request($curl,true,'POST',$data); 
 $cont = json_decode($content); 
  
 return $cont->ticket; 
}

(II)然后凭借ticket到指定URL换取二维码

获取二维码ticket后,开发者可用ticket换取二维码图片。请注意,本接口无须登录态即可调用。

//然后凭借ticket到指定URL换取二维码 
public function _getQRCode($sceneid,$type='temp',$expire_seconds=604800){ 
 $ticket = $this->_getTicket($sceneid,$type,$expire_seconds); 
 $curl = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.urlencode($ticket); 
 $content = $this->_request($curl); 
 return $content; 
}

调用输出:

header('Content-type:image.jpeg'); 
$result = $wechat->_getQRCode(30); 
echo $result;

总结

以上所述是小编给大家介绍的微信接口生成带参数的二维码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
在数据量大(超过10万)的情况下
Jan 15 PHP
PHP+JS+rsa数据加密传输实现代码
Mar 23 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
php中CI操作多个数据库的代码
Jul 05 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
php递归函数怎么用才有效
Feb 24 PHP
php无限级评论嵌套实现代码
Apr 18 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 #PHP
PHP中TP5 上传文件的实例详解
Jul 31 #PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 #PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 #PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 #PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 #PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 #PHP
You might like
PHP新手上路(七)
2006/10/09 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
YII实现分页的方法
2014/07/09 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
学习jquery之一
2007/04/27 Javascript
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
js字符编码函数区别分析
2008/06/05 Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
vue使用recorder.js实现录音功能
2019/11/22 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
Python爬取读者并制作成PDF
2015/03/10 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
python如何实现一个刷网页小程序
2018/11/27 Python
Django框架自定义session处理操作示例
2019/05/27 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
中英文自我评价语句
2013/12/20 职场文书
探亲邀请信范文
2014/01/30 职场文书
生活部的活动方案
2014/08/19 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
村党建工作汇报材料
2014/11/02 职场文书
党员年终个人总结
2015/02/14 职场文书
小学大队委竞选口号
2015/12/25 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis