1. 程式人生 > >微信服務號和第三方平臺對接(前端)

微信服務號和第三方平臺對接(前端)

微信公眾號:

1、服務號(每個月只能推送4篇文章,申請收費,更多高階功能:自定義選單等,

2、訂閱號(每天都可以推送文章,申請免費

訊息出現的位置不同,訂閱號統一在微信訂閱號模組下管理。

二者共用一種對接方式。

瞭解詳情

一、引導使用者開啟授權頁面

window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect'

引數說明:

appid 必填 公眾號的唯一標識
redirect_uri 必填 授權後重定向的回撥連結地址, 請使用 urlEncode 對連結進行處理
response_type 必填 返回型別,請填寫code
scope 必填 應用授權作用域,snsapi_base (不彈出授權頁面,直接跳轉,只能獲取使用者openid),snsapi_userinfo (彈出授權頁面,可通過openid拿到暱稱、性別、所在地。並且, 即使在未關注的情況下,只要使用者授權,也能獲取其資訊 
state 非必填 重定向後會帶上state引數,開發者可以填寫a-zA-Z0-9的引數值,最多128位元組
#wechat_redirect 必填 無論直接開啟還是做頁面302重定向時候,必須帶此引數


二、回撥之後的處理

使用者在授權頁面如果點選了同意授權按鈕,頁面會跳轉到 redirect_uri/?code=CODE&state=STATE;

這裡就可以在路由上拿到最重要的引數code;

code說明 : code作為換取access_token的票據,每次使用者授權帶上的code將不一樣,code只能使用一次,5分鐘未被使用自動過期。

獲取code後,請求以下連結獲取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

正確時返回的JSON資料包如下:

{ "access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE" }

錯誤時微信會返回JSON資料包如下(示例為Code無效錯誤):

{"errcode":40029,"errmsg":"invalid code"}


三、獲取使用者資訊

引數既然都拿到了,那麼就開始獲取使用者資訊了。

官方提醒:由於公眾號的secret和獲取到的access_token安全級別都非常高,必須只儲存在伺服器,不允許傳給客戶端。後續重新整理access_token、通過access_token獲取使用者資訊等步驟,也必須從伺服器發起

也就是說access_token獲取資訊的步驟要在後端進行,因此前後端如果有需要,可額外新增令牌token作為通訊的標識。

http:GET(請使用https協議) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN


附:官方文件地址