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


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 相关文章推荐
WIN98下Apache1.3.14+PHP4.0.4的安装
Oct 09 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
php 过滤器实现代码
Aug 09 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
Apr 14 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
golang 调用 php7详解及实例
Jan 04 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
php使用pecl方式安装扩展操作示例
Aug 12 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调用三种数据库的方法(1)
2006/10/09 PHP
PHP数字格式化
2006/12/06 PHP
php学习笔记之 函数声明
2011/06/09 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
php防止sql注入的方法详解
2017/02/20 PHP
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
Python入门篇之数字
2014/10/20 Python
Python中字符串的修改及传参详解
2016/11/30 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
Python读取properties配置文件操作示例
2018/03/29 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
Python通过len函数返回对象长度
2020/10/22 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
python常量折叠基础知识点讲解
2021/02/28 Python
苹果香港官方商城:Apple香港
2016/09/14 全球购物
高一政治教学反思
2014/01/28 职场文书
消防安全汇报材料
2014/02/08 职场文书
文艺晚会主持词
2014/03/24 职场文书
某某同志考察材料
2014/05/28 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
大学开学感言
2015/08/01 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
详解Python requests模块
2021/06/21 Python
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript