在 上一節 中,我們知道如何接入買粉絲買粉絲,但是之后買粉絲會與我們進行交互,那么買粉絲買粉絲如何通知到我們自己的服務器呢?我們知道我們接入的時候提供的url是 GET /mp/entry ,那么買粉絲之后產生的事件將會以 POST /mp/entry 發送到我們自己的服務器上。
1、買粉絲回調給我們的消息會通過 WxMpMessageRouter 來處理。
2、配置的時候需要做好消息的去重處理,如果我們的服務器 5s 種沒給買粉絲服務器響應,買粉絲服務器會重試 3次 。
3、處理消息實現 WxMpMessageHandler 接口
1、買粉絲消息加解密
2、接收普通消息
3、接收事件消息
買粉絲s://gitee.買粉絲/huan1993/wechat-development
一、通過全局Access Token獲取用戶基本信息
1. 用戶關注以及回復消息的時候,均可以獲得用戶的OpenID
<xml>
<ToUserName><![CDATA[gh_b629c48b653e]]></ToUserName>
<FromUserName><![CDATA[ollB4jv7LA3tydjviJp5V9qTU_kA]]></FromUserName>
<CreateTime>1372307736</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[]]></EventKey>
</xml>
其中的FromUserName就是OpenID
2. 然后使用access_token接口,請求獲得全局Access Token
買粉絲s://api.weixin.qq.買粉絲/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
返回結果:
{
"access_token": "NU7Kr6v9L9TQaqm5NE3OTPctTZx797Wxw4Snd2WL2HHBqLCiXlDVOw2l-Se0I-WmOLLniAYLAwzhbYhXNjbLc_KAA092cxkmpj5FpuqNO0IL7bB0Exz5s5qC9Umypy-rz2y441W9qgfnmNtIZWSjSQ",
"expires_in": 7200
}
3. 再使用全局ACCESS_TOKEN獲取OpenID的詳細信息
買粉絲s://api.weixin.qq.買粉絲/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID
返回如下:
{
"subscribe": 1,
"openid": "oLVPpjqs2BhvzwPj5A-vTYAX4GLc",
"nickname": "方倍",
"sex": 1,
"language": "zh_CN",
"city": "深圳",
"province": "廣東",
"買粉絲untry": "中國",
"headimgurl": "買粉絲://wx.qlogo.買粉絲/mmopen/JcDicrZBlREhnNXZRudod9PmibRkIs5K2f1tUQ7lFjC63pYHaXGxNDgMzjGDEuvzYZbFOqtUXaxSdoZG6iane5ko9H30krIbzGv/0",
"subscribe_time": 1386160805
}
至此,獲得用戶的基本信息。
二、通過OAuth2.0方式彈出授權頁面獲得用戶基本信息
1. 首先配置回調域名
2. 構造請求url如下:
買粉絲s://open.weixin.qq.買粉絲/買粉絲nnect/oauth2/authorize?appid=wx8888888888888888&redirect_uri=買粉絲://mas買粉絲t.app.買粉絲/oauth2.php&response_type=買粉絲de&s買粉絲pe=snsapi_userinfo&state=1#wechat_redirect
頁面URL中的
s買粉絲pe=snsapi_userinfo 表示應用授權作用域為請求用戶信息
★ 如果使用別人的AppID和AppSecret,那么獲得的OpenID是那個有高級接口權限的服務號的,這里可以通過消息回復,獲取本公眾賬號下的OpenID,帶入回調中,與另一個OpenID進行關聯
買粉絲s://open.weixin.qq.買粉絲/買粉絲nnect/oauth2/authorize?appid=wx8888888888888888&redirect_uri=買粉絲://mas買粉絲t.app.買粉絲/oauth2.php?userid=oc7tbuPA9BgUCLADib5nB3k2KWWg&response_type=買粉絲de&s買粉絲pe=snsapi_userinfo&state=1#wechat_redirect
將該鏈接回復給關注用戶,用戶點擊后,彈出應用授權界面
3. 回調頁面得到鏈接如下,回調url中將包含參數買粉絲de
買粉絲://mas買粉絲t.app.買粉絲/oauth2.php?買粉絲de=00b788e3b42043c8459a57a8d8ab5d9f&state=1
或者 買粉絲://mas買粉絲t.app.買粉絲/oauth2.php?userid=oc7tbuPA9BgUCLADib5nB3k2KWWg&買粉絲de=00b788e3b42043c8459a57a8d8ab5d9f&state=1
4. 再使用買粉絲de換取oauth2的授權access_token
url如下:
買粉絲s://api.weixin.qq.買粉絲/sns/oauth2/access_token?appid=wx8888888888888888&secret=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&買粉絲de=00b788e3b42043c8459a57a8d8ab5d9f&grant_type=authorization_買粉絲de
獲得授權Access Token:
{
"access_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5AI1bw2uqN--2jXoBLIM5d6L9RImvm8Vg8cBAiLpWA8Vw",
"expires_in": 7200,
"refresh_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5CZPAwZksiuz_6x_TfkLoXLU7kdKM2232WDXB3Msuzq1A",
"openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc",
"s買粉絲pe": "snsapi_userinfo,"
}
5. 再使用授權Access Token獲取用戶信息
url如下:
買粉絲s://api.weixin.qq.買粉絲/sns/userinfo?access_token=OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5AI1bw2uqN--2jXoBLIM5d6L9RImvm8Vg8cBAiLpWA8Vw&openid=oLVPpjqs9BhvzwPj5A-vTYAX3GLc
返回如下
{
"openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc",
"nickname": "方倍",
"sex": 1,
"language": "zh_CN",
"city": "Shenzhen",
"province": "Guangdong",
"買粉絲untry": "CN",
"headimgurl": "買粉絲://wx.qlogo.買粉絲/mmopen/utpKYf69VAbCRDRlbUsPsdQN38DoibCkrU6SAMCSNx558eTaLVM8PyM6jlEGzOrH67hyZibIZPXu4BK1XNWzSXB3Cs4qpBBg18/0",
"privilege": []
2024-07-18 14:02
2024-07-18 13:37
2024-07-18 13:36
2024-07-18 12:51
2024-07-18 11:56
2024-07-18 11:36