最近在搞微信開放平臺,記錄一下微信開放平臺第三方授權的流程。
后端:Delphi10.3.3(DelphiWebMvc)
前端:jQuery (Ajax + HTML)
緩存:Redis服務器
授權流程:
第三方平臺開發者可以通過調用微信開放平臺的接口能力,為公眾號或小程序的運營者提供賬號申請、小程序創建、技術開發、行業方案、活動營銷、插件能力等全方位服務。同一個賬號的運營者可以選擇多家適合自己的第三方為其提供產品能力或委托運營。(官方抄的)
1.獲取驗證票據(component_verify_ticket)
存儲在Redis,供其他請求取值。(獲取令牌時使用)。
程序被動接收,每10分鐘(600s)被推送一次(component_verify_ticket),每次都將新值存入Redis。
2.獲取令牌(component_access_token)
存儲在Redis中,供其他請求取值。(獲取預授權碼時使用)
需要后端程序主動發送POST請求,單個令牌有效期為2個小時(7200s),在令牌快過期時(比如1小時50分),重新調用接口獲取。
3.獲取預授權碼(pre_auth_code)
將其存儲在Redis中,供其他請求取值。(生成授權頁使用)
后端程序主動發送POST請求,每個預授權碼有效期為10分鐘(600s)
4.生成授權頁,寫個Html
第三方平臺根據之前獲取到的參數,按照官方文檔生成被授權頁。
用戶打開第三方平臺授權頁后,掃描二維碼,確認并同意將自己的公眾號或小程序授權給第三方平臺方,完成授權。
5.獲取授權碼(auth_code)
授權后,回調URI,后端會接收授權碼信息和過期時間(redirect_url?auth_code=xxx&expires_in=600)(獲取接口調用憑據時使用)
6.獲取接口調用憑據(authorizer_access_token)
將其存儲在Redis中,通過authorizer_access_token,去調用公眾號或小程序相關 API。
每個接口調用令牌有效期為2小時(7200s),每天有調用限制