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


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 相关文章推荐
在PHP中利用XML技术构造远程服务(下)
Oct 09 PHP
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
php 函数中使用static的说明
Jun 01 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
PHP扩展CURL的用法详解
Jun 20 PHP
PHP 读取文本文件内容并分页显示
Jan 02 PHP
PHP 类与构造函数解析
Feb 06 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 04 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与javascript实现变量交互的示例代码
2013/07/23 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
javascript时区函数介绍
2012/09/14 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
js 操作符汇总
2014/11/08 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
pytyon 带有重复的全排列
2013/08/13 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
20行python代码实现人脸识别
2019/05/05 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
python中列表的含义及用法
2020/05/26 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
python wsgiref源码解析
2021/02/06 Python
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
Joules美国官网:出色的英国风格
2017/10/30 全球购物
LINUX下线程,GDI类的解释
2016/12/14 面试题
银行员工辞职信范文
2014/01/20 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
场地使用证明模板
2014/10/25 职场文书
2015年班干部工作总结
2015/04/29 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
2016入党心得体会范文
2016/01/06 职场文书