公衆平臺提供了生成帶參數二維碼的接口。使用該接口能夠得到多個帶不一樣場景值的二維碼,用戶掃描後,公衆號能夠接收到事件推送。javascript
目前有2種類型的二維碼:php
一、臨時二維碼,是有過時時間的,最長能夠設置爲在二維碼生成後的30天(即2592000秒)後過時,但可以生成較多數量。臨時二維碼主要用於賬號綁定等不要求二維碼永久保存的業務場景
二、永久二維碼,是無過時時間的,但數量較少(目前爲最多10萬個)。永久二維碼主要用於適用於賬號綁定、用戶來源統計等場景。
css
用戶掃描帶場景值二維碼時,可能推送如下兩種事件:html
若是用戶還未關注公衆號,則用戶能夠關注公衆號,關注後微信會將帶場景值關注事件推送給開發者。java
若是用戶已經關注公衆號,在用戶掃描後會自動進入會話,微信也會將帶場景值掃描事件推送給開發者。api
獲取帶參數的二維碼的過程包括兩步,首先建立二維碼ticket,而後憑藉ticket到指定URL換取二維碼。瀏覽器
獲取帶參數的二維碼的過程包括兩步,首先建立二維碼ticket,而後憑藉ticket到指定URL換取二維碼。
微信
每次建立二維碼ticket須要提供一個開發者自行設定的參數(scene_id:整數)或者(scene_str:字符串)。
markdown
<?php @header('Content-type: text/plain;charset=UTF-8'); require_once("../Utils.php"); $data = '{ "expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": { "scene": { "scene_id": 100 } } }'; $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?" ."access_token=".Utils::get_access_token(); $result = Utils::https_request($url, $data); echo $result;返回:
{ "ticket": "gQHv8DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyRW52QnMxeEZlcGkxLXFNNWhwMS0AAgQatrxZAwSAOgkA", "expire_seconds": 604800, "url": "http://weixin.qq.com/q/02EnvBs1xFepi1-qM5hp1-" }當參數爲字符串時,tmp_ticket_str.php
<?php @header('Content-type: text/plain;charset=UTF-8'); require_once("../Utils.php"); $data = '{ "expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": { "scene": { "scene_str": "abcd" } } }'; $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?" ."access_token=".Utils::get_access_token(); $result = Utils::https_request($url, $data); echo $result;返回:
{ "ticket": "gQEN8TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyNGZPSnRXeEZlcGkxLWhQNTFwYzEAAgQRubxZAwSAOgkA", "expire_seconds": 604800, "url": "http://weixin.qq.com/q/024fOJtWxFepi1-hP51pc1" }
<?php @header('Content-type: text/plain;charset=UTF-8'); require_once("../Utils.php"); $data = '{ "action_name": "QR_LIMIT_SCENE", "action_info": { "scene": { "scene_id": 111 } } }'; $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?" ."access_token=".Utils::get_access_token(); $result = Utils::https_request($url, $data); echo $result;
{ "ticket": "gQH88DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyYk44LXNGeEZlcGkxMDAwMHcwM2gAAgRiubxZAwQAAAAA", "url": "http://weixin.qq.com/q/02bN8-sFxFepi10000w03h" }
<?php @header('Content-type: text/plain;charset=UTF-8'); require_once("../Utils.php"); $data = '{ "action_name": "QR_LIMIT_STR_SCENE", "action_info": { "scene": { "scene_str": "haha" } } }'; $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?" ."access_token=".Utils::get_access_token(); $result = Utils::https_request($url, $data); echo $result;返回:
{ "ticket": "gQHf8DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAydmhZenQzeEZlcGkxMDAwMHcwN1EAAgQGu7xZAwQAAAAA", "url": "http://weixin.qq.com/q/02vhYzt3xFepi10000w07Q" }
<xml> <ToUserName> <![CDATA[gh_6b9aa8a6f1e2]]> </ToUserName> <FromUserName> <![CDATA[o4WmZ0h-4huBUVQUczx2ezaxIL9c]]> </FromUserName> <CreateTime>1505542211</CreateTime> <MsgType> <![CDATA[event]]> </MsgType> <Event> <![CDATA[SCAN]]> </Event> <EventKey> <![CDATA[haha]]> </EventKey> <Ticket> <![CDATA[gQHf8DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAydmhZenQzeEZlcGkxMDAwMHcwN1EAAgQGu7xZAwQAAAAA]]> </Ticket> </xml>若是用戶未關注,掃描後會彈出如下界面讓用戶關注
<xml> <ToUserName> <![CDATA[gh_6b9aa8a6f1e2]]> </ToUserName> <FromUserName> <![CDATA[o4WmZ0h-4huBUVQUczx2ezaxIL9c]]> </FromUserName> <CreateTime>1505542651</CreateTime> <MsgType> <![CDATA[event]]> </MsgType> <Event> <![CDATA[subscribe]]> </Event> <EventKey> <![CDATA[qrscene_haha]]> </EventKey> <Ticket> <![CDATA[gQHf8DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAydmhZenQzeEZlcGkxMDAwMHcwN1EAAgQGu7xZAwQAAAAA]]> </Ticket> </xml>