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


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之第四天
Oct 09 PHP
php self,$this,const,static,->的使用
Oct 22 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
Dec 18 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
php 猴子摘桃的算法
Jun 20 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 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在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
PHP 裁剪图片
2021/03/09 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
python实现根据月份和日期得到星座的方法
2015/03/27 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
python实现下载文件的三种方法
2017/02/09 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
公司总经理岗位职责范本
2014/08/15 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
导游词之太原天龙山
2020/01/02 职场文书