微信开发生成带参数的二维码的讲解
原文出处:http://www.cnblogs.com/Alex80/p/6076584.html
在微信公众号平台开发者那里,在“账号管理”那里,有一项功能是“生成带参数的二维码”,通过这里生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微信公众号上,用微信扫一扫推动到开发者网址那的数据如下:
<xml><ToUserName><![CDATA[gh_452****b0f2]]></ToUserName>
<FromUserName><![CDATA[oz1fVs4d****7FmFrCbc57o]]></FromUserName>
<CreateTime>1429416610</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[SCAN]]></Event>
<EventKey><![CDATA[155120hzw]]></EventKey>
<Ticket><![CDATA[gQH17zoAAAAAAAAAASxodHR****S9xL28waUNrM1BsV1ZJZ0VJcE8tbUFMAAIEcCozVQMEAAAAAA==]]></Ticket>
</xml>
上面是xml格式的数据,Event里SCAN表示扫描,Eventkey是生成二维码时在json设置的数值,EventKey是可以自己指定的,其他都是微信平台内定的,通过自定义EventKey的数据,可以做到自动回复指定的数据
比如:我要做一个猜谜的游子,每个猜谜都有一个唯一的编号,这个编号可以设置为EventKey的值,然后别人扫描带参数的二维码时,会把谜语的编号(EventKey)传过来,然后根据编号自动回复谜底给用户,就是做到拿出微信扫一扫就知道谜底。
微信官方开发文档:
为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接受到事件推送。
目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000)。两种二维码分别适用于账号绑定、用户来源统计等场景
用户扫描带场景值二维码时,可能推送以下两种事件:
如果用户还没有关注公众号,那么用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者
如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者
获取带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码