微信公眾號開發(fā)系列-獲取微信OpenID

在微信開發(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容