在微信开发时候在做消息接口交互的时候须要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID。接收事件推送方式和网页授权获取用户基本信息方式获取。
1、通过接收被动消息方式获取OpenId(接收事件推送方式)。下面事件中都能够获取到OpenID
关注/取消关注事件
用户在关注与取消关注公众号时。微信会把这个事件推送到开发人员填写的URL。方便开发人员给用户下发欢迎消息或者做帐号的解绑。
微信server在五秒内收不到响应会断掉连接,而且又一次发起请求,总共重试三次
关于重试的消息排重,推荐使用FromUserName + CreateTime 排重。
假如server无法保证在五秒内处理并回复,能够直接回复空串,微信server不会对此作不论什么处理,而且不会发起重试。
推送XML数据包演示样例:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>
參数说明:
參数 | 描写叙述 |
---|---|
ToUserName | 开发人员微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | 消息类型,event |
Event | 事件类型,subscribe(订阅)、unsubscribe(取消订阅) |
扫描带參数二维码事件
用户扫描带场景值二维码时,可能推送下面两种事件:
假设用户还未关注公众号,则用户能够关注公众号。关注后微信会将带场景值关注事件推送给开发人员。
假设用户已经关注公众号。则微信会将带场景值扫描事件推送给开发人员。
1. 用户未关注时,进行关注后的事件推送
推送XML数据包演示样例:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[qrscene_123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>
參数说明:
參数 | 描写叙述 |
---|---|
ToUserName | 开发人员微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | 消息类型,event |
Event | 事件类型,subscribe |
EventKey | 事件KEY值。qrscene_为前缀,后面为二维码的參数值 |
Ticket | 二维码的ticket,可用来换取二维码图片 |
2. 用户已关注时的事件推送
推送XML数据包演示样例:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[SCAN]]></Event>
<EventKey><![CDATA[SCENE_VALUE]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>
參数说明:
參数 | 描写叙述 |
---|---|
ToUserName | 开发人员微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | 消息类型,event |
Event | 事件类型,SCAN |
EventKey | 事件KEY值。qrscene_为前缀,后面为二维码的參数值 |
Ticket | 二维码的ticket,可用来换取二维码图片 |
2、通过第三方网页授权方式获取OpenID,採用第三方网页授权(OAuth2.0授权登录)
这里附上获取code方式
https://www.jianshu.com/p/1388f9bb885b
这个小伙伴写的也挺好的,可以看下
https://www.cnblogs.com/zsychanpin/p/6719196.html
网友评论