微信第三方平臺-授權流程經驗分享

keith666發表於2019-02-26

原文地址: www.jianshu.com/p/67836ffa9…

在做微信第三方平臺開發的時候,雖然授權的技術實現流程比較簡單,但是相對於一個key直接整合的一些其他的服務來說,還是有一些步驟,過一段時間再回頭查相關功能時還是可能忘記的,雖然官方的文件很全,但時每次都要前前後後看文件或每次都要走一遍步驟還是挺浪費時間的.

  • 微信開放平臺:平臺定位,面向開發者,提供微信登入、分享、支付等相關許可權和服務
  • 微信公眾平臺:包括訂閱號,服務號,企業號和小程式(可申請支付)

於是本人整理了下相關內容,進行分享和討論.

互動流程

搬自官網,以公眾號為例,授權給第三方平臺整體流程如下圖:

image.png

授權流程技術說明

具體的步驟為:

  1. 第三方平臺方獲取預授權碼(pre_auth_code)
  2. 引入使用者進入授權頁(PC和移動端)
  3. 使用者確認並同意登入授權給第三方平臺方
  4. 授權後回撥URI,得到授權碼(authorization_code)和過期時間
  5. 利用授權碼呼叫公眾號或小程式的相關API(獲取授權方的token等)

介面呼叫流程

整體流程還是很清晰易懂的,但是到具體介面呼叫時可能會有一些混亂,比如介面之間的引數的銜接等.因此本人制作了一張圖,從介面呼叫的角度來描述授權的流程,如下:

image.png

步驟從上到下

常見問題

1. component_access_token的更新方式

答: 使用獲取介面來更新.

2. authorizer_access_token的更新方式

答: 使用refresh_token來更新.

refresh_token也要同時使用最新返回的結果

3. authorizer_refresh_token的丟失處理

答: 需要重新授權(從頭來一遍).

4. component_access_tokenauthorizer_access_token的更新機制

答: 主動+被動.

  • 主動: 設定定時任務(如:1min)分別檢查component_access_tokenauthorizer_access_token是否快過期或過期,如果是則更新token
  • 被動: 每次使用component_access_tokenauthorizer_access_token時,先檢查相應其是否過期,如果過期則更新token再繼續相應操作
  • 微信該介面有次數限制,因此需要合理的時機來請求
  • 參考: 獲取access_token

相關文章