微信开放平台-第三方平台授权流程及接口概述
近期需要使用第三方平臺做相應(yīng)的代小程序業(yè)務(wù)的開發(fā),本篇主要針對微信開放平臺的第三方平臺授權(quán)流程做簡要總結(jié)。我們可以簡單理解為代管小程序或公眾號沒有開發(fā)資源,需要將自己的小程序托管給第三方公司現(xiàn)實(shí)業(yè)務(wù)功能,微信開放平臺針對這種場景開放了第三方開發(fā)能力,本篇要講的授權(quán)也就是托管給第三方公司的第一步,授管后小程序的服務(wù)器配置、域名配置等都將修改為第三方公司提供的服務(wù)配置,如此第三方公司利用微信開發(fā)平臺能力完成代管小程序需求業(yè)務(wù)功能,詳細(xì)說明見官方文檔。
小程序運(yùn)營者通過授權(quán)后,第三方平臺就可以代小程序完成相應(yīng)的開發(fā)任務(wù)實(shí)現(xiàn)業(yè)務(wù)需求,我在另一篇“第三方平臺代小程序?qū)崿F(xiàn)業(yè)務(wù)”中介紹了在授權(quán)后,第三方平臺如何使用微信開放平臺的能力完成相關(guān)業(yè)務(wù)的開發(fā)步驟。
授權(quán)流程說明:
作為第三方開發(fā)平臺,在為其他微信公眾號或小程序開發(fā)、調(diào)用其接口之前,需要先得到代管小程序?qū)僦鞯氖跈?quán),授權(quán)方式分為二維碼和跳轉(zhuǎn)鏈接二種。
1.接收驗(yàn)證票據(jù)(component_verify_ticket)
出于安全考慮,在第三方平臺創(chuàng)建審核通過后,微信服務(wù)器會每隔 10 分鐘會向第三方的消息接收地址推送一次 component_verify_ticket,用于獲取第三方平臺接口調(diào)用憑據(jù)。
第三方的程序被動接收,建議每次都將新值放入Redis中,供其他請求獲取值(獲取令牌時使用)。
接口文檔:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/component_verify_ticket.html
推送內(nèi)容解密后的示例:
1 <xml> 2 <AppId>some_appid</AppId> 3 <CreateTime>1413192605</CreateTime> 4 <InfoType>component_verify_ticket</InfoType> 5 <ComponentVerifyTicket>some_verify_ticket</ComponentVerifyTicket> 6 </xml>
2.獲取令牌(component_access_token)
第三方平臺通過component_appid和 component_appsecret,以及 component_verify_ticket(每 10 分鐘推送一次的安全 ticket)來獲取自己的接口調(diào)用憑據(jù)(component_access_token)
(微信開放平臺管理中心的第三方平臺詳情頁中可以查看的 AppID 和 AppSecret)。
在需要授權(quán)時,第三方平臺程序主動發(fā)送POST請求獲取,單個令牌有效期為2個小時(7200s),在令牌快過期時(比如1小時50分),重新調(diào)用接口獲取,可以將其存儲在Redis中。
接口文檔:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/component_access_token.html
POST數(shù)據(jù)示例
{
"component_appid": "appid_value" ,
"component_appsecret": "appsecret_value",
"component_verify_ticket": "ticket_value"
}
返回?cái)?shù)據(jù)示例
{
"component_access_token": "61W3mEpU66027wgNZ_MhGHNQDHnFATkDa9-2llqrMBjUwxRSNPbVsMmyD-yq8wZETSoE5NQgecigDrSHkPtIYA",
"expires_in": 7200
}
3.獲取預(yù)授權(quán)碼(pre_auth_code)
通過第二步獲取的接口調(diào)用憑據(jù)(component_access_token)來獲取用于授權(quán)流程準(zhǔn)備的預(yù)授權(quán)碼(pre_auth_code)。
每個預(yù)授權(quán)碼有效期為10分鐘(600s)需將其存儲在Redis中,生成授權(quán)頁會使用。
接口文檔:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/pre_auth_code.html
請求參數(shù)說明
| 參數(shù) | 類型 | 必填 | 說明 |
|---|---|---|---|
| component_access_token | string | 是 | 第三方平臺component_access_token,不是authorizer_access_token |
| component_appid | string | 是 | 第三方平臺 appid |
返回?cái)?shù)據(jù)示例:
{
"pre_auth_code": "Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw",
"expires_in": 600
}
4.引入用戶進(jìn)入授權(quán)頁
第三方平臺方可以在自己的網(wǎng)站中放置“微信公眾號授權(quán)”或者“小程序授權(quán)”的入口,或生成授權(quán)鏈接放置在移動網(wǎng)頁中,引導(dǎo)公眾號和小程序管理員進(jìn)入授權(quán)頁。
用戶進(jìn)入第三方平臺授權(quán)頁后,需要確認(rèn)并同意將自己的公眾號或小程序授權(quán)給第三方平臺方,完成授權(quán)流程,授權(quán)方式分為以下兩種,詳細(xì)介紹:
方式一:授權(quán)注冊頁面掃碼授權(quán)
授權(quán)頁網(wǎng)址為:
https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx。
方式二:點(diǎn)擊移動端鏈接快速授權(quán)第三方平臺方可以生成授權(quán)鏈接,將鏈接通過移動端直接發(fā)給授權(quán)管理員,管理員確認(rèn)后即授權(quán)成功。
授權(quán)鏈接地址:
https://mp.weixin.qq.com/safe/bindcomponent?action=bindcomponent&auth_type=3&no_scan=1&component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx&biz_appid=xxxx#wechat_redirect
5.獲取授權(quán)碼(pre_auth_code)
當(dāng)用戶在第三方平臺授權(quán)頁中完成授權(quán)流程后,第三方平臺開發(fā)者可以在回調(diào) URI 中通過 URL 參數(shù)獲取授權(quán)碼。
回調(diào)URI中會接收授權(quán)碼信息和過期時間(redirect_url?auth_code=xxx&expires_in=600)(獲取接口調(diào)用憑據(jù)時使用)
6.獲取接口調(diào)用憑據(jù)(authorizer_access_token)
通過授權(quán)碼和自已接口的調(diào)用憑據(jù)(component_access_token)換取公眾號或小程序的接口調(diào)用憑據(jù)(authorizer_access_token 和用于前者快過期時用來刷新它的 authorizer_refresh_token)和授權(quán)信息(授權(quán)了哪些權(quán)限等信息)建議保存授權(quán)信息中的刷新令牌(authorizer_refresh_token)。
接口文檔:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/authorization_info.html
7.獲取/刷新授權(quán)公眾號或小程序的接口調(diào)用憑據(jù)
authorizer_refresh_token刷新令牌(在授權(quán)的公眾號具備API權(quán)限時,才有此返回值),刷新令牌主要用于第三方平臺獲取和刷新已授權(quán)用戶的 authorizer_access_token。
一旦丟失,只能讓用戶重新授權(quán),才能再次拿到新的刷新令牌。用戶重新授權(quán)后,之前的刷新令牌會失效,所以建議來刷新公眾號或小程序的接口調(diào)用憑據(jù)。
接口文檔:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/api_authorizer_token.html
8、第三方平臺接口使用
通過以上授權(quán)流程,獲取到微信小程序的接口調(diào)用憑據(jù)authorizer_access_token后即可完成相應(yīng)的業(yè)務(wù)開發(fā)了。
如小程序基本信息接口,以下可以獲取小程序的基本信息:
GET https://api.weixin.qq.com/cgi-bin/account/getaccountbasicinfo?access_token=ACCESS_TOKEN
接口文檔:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Mini_Programs/Mini_Program_Information_Settings.html
詳細(xì)授權(quán)流程說明:
https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Authorization_Process_Technical_Description.html
相關(guān)接口文檔說明:
https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/pre_auth_code.html
總結(jié)
以上是生活随笔為你收集整理的微信开放平台-第三方平台授权流程及接口概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为手机怎么解锁
- 下一篇: Java 基本数据类型