【黄啊码】PHP配合微信公众号生成推广二维码
前言
为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。
1、目前有2种类型的二维码
临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景
2、用户扫描带场景值二维码时,可能推送以下两种事件
如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。
获取带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码。
3、创建二维码ticket
每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id),分别介绍临时二维码和永久二维码的创建二维码ticket过程。
4、临时二维码请求说明
http请求方式: POST
URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
POST数据格式:json
POST数据例子:{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}或者也可以使用以下POST数据创建字符串形式的二维码参数:
{"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}
5、永久二维码请求说明
http请求方式: POST
URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
POST数据格式:json
POST数据例子:{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}或者也可以使用以下POST数据创建字符串形式的二维码参数:
{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}
6、临时二维码和永久二维码生成实现的代码
//临时二维码public function getQrls()
{$accessToken = $this->_getWxAccessToken();$url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={$accessToken}";$postArr = ["action_name" => "QR_SCENE","expire_seconds" => 604800,"action_info" => ['scene' => ['scene_id' => 2000],],];$postJson = json_encode($postArr);$res = $this->ch($url, 'post', 'json', $postJson);$ticket = $res['ticket'];$url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($ticket);echo "<img src='".$url."'>";}//永久二维码public function getQryj()
{$accessToken = $this->_getWxAccessToken();$url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={$accessToken}";$postArr = ["action_name" => "QR_LIMIT_SCENE","action_info" => ['scene' => ['scene_id' => 3000],],];$postJson = json_encode($postArr);$res = $this->ch($url, 'post', 'json', $postJson);$ticket = $res['ticket'];$url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($ticket);echo "<img src='".$url."'>";}//url请求private function ch($url, $type='get', $res='json', $arr='')
{$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);if ($type == 'post') {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);}$cnt = curl_exec($ch);if (curl_errno($ch)) {return;}curl_close($ch);if ($res == 'json') {return json_decode($cnt, true);}return $cnt;}
生成临时、永久二维码的图片这里就不放了,感兴趣的可以自己运行一下哈。
【黄啊码】PHP配合微信公众号生成推广二维码相关推荐
- 怎么实现微信公众号生成专属二维码推广来源统计
为了实现微信公众号生成专属二维码推广来源统计功能,第三方平台微号帮提供了渠道二维码生成功能实现,可以给微信公众号在线生成专属推广二维码,统计公众号各个渠道来源的粉丝,一个渠道对应一个推广二维码,可以生 ...
- 微信公众号生成临时二维码
微信公众号生成临时二维码 微信公众平台生成带参数的二维码官方文档 分为三个部分: 获取access_token.通过ticket换取二维码.生成带参数的二维码 特别注意:需要有生成二维码的权限. 整个 ...
- java_微信公众号扫码绑定个人信息(微信公众号场景值二维码的使用)
看了一下网上关于公众号场景值二维码这方面的教程,基本上是微信官方开发文档的复制,没有具体实例.这里给出实例,并附加二维码url转文件流的方法. 思路: 1.后台传入个人信息保存,以个人信息的" ...
- 微信公众号带参数二维码的几个使用场景
微信公众号官方开放了 "带参数二维码" 的功能,根据官网文档的描述,有如下的特点: 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口. 通过 ...
- Yii实现微信公众号的场景二维码
在Yii中实现场景二维码这里我使用的是easywechat插件,安装easywechat插件 composer require jianyan74/yii2-easy-wechat github地址: ...
- laravel生成微信公众号带参数二维码并响应扫描带参数二维码
微信公众号后台ip白名单.网页接口域名之类的配置就不多说了,这里主要配置的是开发->基本配置->服务器配置(注:一旦启用改配置,公众号自动回复就会失效): 1.服务器地址(URL):这里要 ...
- 微信公众号带参二维码的生成以及后台Java的处理
1.生成带参二维码 有两种方式,一是通过微信公众平台来生成,二是通过java代码生成 一:微信平台生成 首先进入公众平台,找到接口权限进入 进入后找到获取access_tocken接口,获取acces ...
- JAVA微信公众号开发之二维码的创建与获取
微信文档说明 两种二维码: 1.临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量.临时二维码主要用于帐号绑定等不要求二维码永久保存的业务 ...
- 微信公众平台----带参数二维码生成和扫描事件
原文:微信公众平台----带参数二维码生成和扫描事件 摘要: 账号管理----生成带参数的二维码 消息管理----接收消息----接收事件推送 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众 ...
最新文章
- 利用classloader同一个项目中加载另一个同名的类_线程上下文类加载器ContextClassLoader内存泄漏隐患...
- 深入浅出全面解析RDMA
- mysql写入 cpu飙升_分析MySQL中索引引引发的CPU负载飙升的问题
- phpcms关于 {if} 判断后台是否上传{thumb} 缩略图 - 代码篇
- Python高级——Web静态服务器(面向对象)
- 多线程编程学习总结(转载)
- 杭电2066--一个人的旅行(Floyd)
- 了解 Adobe Scout 收集和使用的数据
- Mac聚焦搜索Spotlight搜不到文件怎么办?
- 奔腾4 2.4CPU计算机硬件能升级吗,CPU怎么升级啊
- 内存模拟块设备驱动程序设计
- 管理感悟:工作管理的两大要点
- 【C语言函数调用详解】——传值调用传址调用
- html5svg在线编辑器,HTML5 SVG简介
- linux网络操作系统项目教程课本,Linux网络操作系统项目式教程(CentOS7.6)-课后练习题.docx...
- Echarts图表之南丁格尔图
- echarts去除x轴和y轴上的刻度值_Echarts实现隐藏x轴,y轴,刻度线,网格
- 1380 D - Berserk And Fireball(思维,贪心)
- 第六节 ftpserver的安装与配置(Windows)
- 用户故事地图(User Story Mapping)之初体验