在微信開發(fā)時(shí)候在做消息接口交互的時(shí)候須要使用帶微信加密ID(OpenId),下面講講述2中類型方式獲取微信OpenID。接收事件推送方式和網(wǎng)頁授權(quán)獲取用戶基本信息方式獲取。
1、通過接收被動消息方式獲取OpenId(接收事件推送方式)。下面事件中都能夠獲取到OpenID
關(guān)注/取消關(guān)注事件
用戶在關(guān)注與取消關(guān)注公眾號時(shí)。微信會把這個(gè)事件推送到開發(fā)人員填寫的URL。方便開發(fā)人員給用戶下發(fā)歡迎消息或者做帳號的解綁。
微信server在五秒內(nèi)收不到響應(yīng)會斷掉連接,而且又一次發(fā)起請求,總共重試三次
關(guān)于重試的消息排重,推薦使用FromUserName + CreateTime 排重。
假如server無法保證在五秒內(nèi)處理并回復(fù),能夠直接回復(fù)空串,微信server不會對此作不論什么處理,而且不會發(fā)起重試。
推送XML數(shù)據(jù)包演示樣例:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>
參數(shù)說明:
| 參數(shù) | 描寫敘述 |
|---|---|
| ToUserName | 開發(fā)人員微信號 |
| FromUserName | 發(fā)送方帳號(一個(gè)OpenID) |
| CreateTime | 消息創(chuàng)建時(shí)間 (整型) |
| MsgType | 消息類型,event |
| Event | 事件類型,subscribe(訂閱)、unsubscribe(取消訂閱) |
掃描帶參數(shù)二維碼事件
用戶掃描帶場景值二維碼時(shí),可能推送下面兩種事件:
假設(shè)用戶還未關(guān)注公眾號,則用戶能夠關(guān)注公眾號。關(guān)注后微信會將帶場景值關(guān)注事件推送給開發(fā)人員。
假設(shè)用戶已經(jīng)關(guān)注公眾號。則微信會將帶場景值掃描事件推送給開發(fā)人員。
1. 用戶未關(guān)注時(shí),進(jìn)行關(guān)注后的事件推送
推送XML數(shù)據(jù)包演示樣例:
<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>
參數(shù)說明:
| 參數(shù) | 描寫敘述 |
|---|---|
| ToUserName | 開發(fā)人員微信號 |
| FromUserName | 發(fā)送方帳號(一個(gè)OpenID) |
| CreateTime | 消息創(chuàng)建時(shí)間 (整型) |
| MsgType | 消息類型,event |
| Event | 事件類型,subscribe |
| EventKey | 事件KEY值。qrscene_為前綴,后面為二維碼的參數(shù)值 |
| Ticket | 二維碼的ticket,可用來換取二維碼圖片 |
2. 用戶已關(guān)注時(shí)的事件推送
推送XML數(shù)據(jù)包演示樣例:
<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>
參數(shù)說明:
| 參數(shù) | 描寫敘述 |
|---|---|
| ToUserName | 開發(fā)人員微信號 |
| FromUserName | 發(fā)送方帳號(一個(gè)OpenID) |
| CreateTime | 消息創(chuàng)建時(shí)間 (整型) |
| MsgType | 消息類型,event |
| Event | 事件類型,SCAN |
| EventKey | 事件KEY值。qrscene_為前綴,后面為二維碼的參數(shù)值 |
| Ticket | 二維碼的ticket,可用來換取二維碼圖片 |
2、通過第三方網(wǎng)頁授權(quán)方式獲取OpenID,採用第三方網(wǎng)頁授權(quán)(OAuth2.0授權(quán)登錄)
這里附上獲取code方式
http://www.itdecent.cn/p/1388f9bb885b
這個(gè)小伙伴寫的也挺好的,可以看下
https://www.cnblogs.com/zsychanpin/p/6719196.html