簡單介紹微信小程序服務商-第三方平臺申請、測試以及全網(wǎng)發(fā)布相關流程。另外會著重例證成為第三方平臺后前后端需要做哪些事情。
一. 第三方平臺開發(fā)初體驗
打開微信開放平臺https://open.weixin.qq.com/cgi-bin/frame?t=home/wx_plugin_tmpl&lang=zh_CN。完成開發(fā)者資質(zhì)認證后打開開發(fā)文檔https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318292&token=&lang=zh_CN。
勾選第三方平臺權(quán)限集
注: 消息管理權(quán)限集建議不要勾選,除非業(yè)務要求。 若勾選在申請全網(wǎng)發(fā)布資質(zhì)時微信會對這一項基礎邏輯進行檢測。
全網(wǎng)發(fā)布以及為什么需要進行檢測
顧名思義以為是只要發(fā)布一個小程序,那么所有的該模板下面的小程序都發(fā)布了。 NO!全網(wǎng)發(fā)布只是一種資質(zhì)。通過審核后,第三方平臺就可托管被授權(quán)的公眾號/小程序,進行登錄授權(quán)。第三方平臺后端即可通過調(diào)api(核心接口:設置域名、設置分類、上傳代碼、綁定體驗者、獲取體驗二維碼、提交審核、發(fā)布)去對小程序進行自動化管理。
-
流程如下:
image.png -
登錄授權(quán)發(fā)起頁域名: 公眾號/小程序開發(fā)發(fā)起授權(quán)等操作必須在此域名下。
授權(quán)測試公眾號列表 : 測試公眾號/小程序的原始id(不是appid)。
授權(quán)事件接收url : 此接口全限定名,用于接收微信官方推送的消息。如用戶取消授權(quán)、組件ticket等。一個小時內(nèi)會推送六次,程序須返回success響應。
白名單ip地址列表: 不在此列的ip,無法調(diào)用微信相關接口。
微信圖片_20190507152003.png
這里說明一下: 微信那邊也有bug,一會說什么沒有測試資源。其實看到這個圖是已經(jīng)檢測通過了。強迫癥可以再點一次。接下來就是前后端敲代碼的事情了。
二. 慢慢明朗
如何注冊小程序?
- 自主注冊 : 小程序可以是授權(quán)方管理員自己去微信公眾平臺自己注冊一個(若認證需要交300認證費),完善好分類后,把appid以及類目提供給第三方。 然后通過授權(quán)流程技術https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1453779503&token=&lang=zh_CN授權(quán)給第三方。
- 第三方通過api接口快速注冊 (有贊、微盟等小程序服務商就是例子): https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=21538208049W8uwq&token=&lang=zh_CN,通過該接口創(chuàng)建小程序默認“已認證“且無需交300認證費。
為什么需要授權(quán)?
如果不進行授權(quán),第三方是無法代開發(fā)的。 因為代小程序?qū)崿F(xiàn)業(yè)務必須通過接口去實現(xiàn),微信既然開放了[第三方平臺開發(fā)]這一機制,其實就是希望把被代管的小程序的所有以前在普通小程序后臺上看到的功能全部通過接口開放給第三方。 因為第三方有這個能力去開發(fā)并代管。
通過授權(quán)后,第三方后臺可以獲取到授權(quán)方小程序的接口調(diào)用令牌即authorizer_accesstoken。通過api接口快速創(chuàng)建小程序后,若注冊成功,微信會推送注冊審核事件給第三方后臺,里面會包含appid以及auth_code(使用該授權(quán)碼可以換取authorizer_accesstoken)等關鍵信息。
微信為第三方代小程序?qū)崿F(xiàn)業(yè)務開放的主要接口如下:
小程序授權(quán)完成后,需要登錄[小程序后臺-設置-第三方授權(quán)管理 ]去綁定授權(quán)方小程序。
如下圖:
三. 前端小程序的變化
- 小程序這邊引入了一個模板(小程序模板開發(fā):https://developers.weixin.qq.com/miniprogram/dev/devtools/ext.html#%E5%B0%8F%E7%A8%8B%E5%BA%8F%E6%A8%A1%E6%9D%BF%E5%BC%80%E5%8F%91)的概念。 在開發(fā)測試階段,前端這邊還是跟開發(fā)普通小程序一樣開發(fā)。
只是在授權(quán)登錄的時候需要前端識別一些參數(shù),然后帶給后端。 該參數(shù)是第三方平臺后臺在【上傳代碼】的時候配置進小程序的。api請看:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1489140610_Uavc4&token=&lang=zh_CN。具體在參數(shù)ext_json.ext里面配置,可以是當前授權(quán)方小程序的appid,前端是可以直接獲取到該自定義參數(shù)然后傳給后端的。 安全起見,建議對該參數(shù)加密一下。
微信官方:為了便于第三方平臺使用同一個小程序模版為不同的小程序提供服務,第三方可以將自定義信息放置在ext_json中,在模版小程序中,可以使用接口獲取自定義信息,從而區(qū)分不同的小程序。
-
前端上傳代碼
上傳之后就是上傳到開放平臺的后臺草稿箱部分,每一個開發(fā)者只有一個草稿。會自動覆蓋上次,也就是說草稿箱最多只能保存10個,合適的版本就可以添加模板庫了。模板庫最多也只能添加50個。
前端上傳完成后,第三方平臺可以在小程序后臺看到,然后可以把草稿指定成模板。 然后就可以提交審核并發(fā)布了。
image.png
四. 漸入佳境
令牌中控臺
熟悉微信開發(fā)服務尿性的,都知道微信有個accessToken。 由于微信側(cè)沒有區(qū)分測試/正式環(huán)境,只是給調(diào)用方50個/天的accessToken的機會,用完了當天就不能再獲取。 但是調(diào)用方這邊是分了環(huán)境的,所以最好調(diào)用方這邊準備一個中控臺專門去獲取token。
第三方平臺也一樣,但是本次有兩個令牌:component_accesstoken以及authorizer_accesstoken。component_accesstoken是平臺令牌,每次更新該令牌需要拿每10分鐘一次微信推送過來的ticket去換的。雖然官方說是兩小時有效,筆者測試發(fā)現(xiàn)當ticket有變化時需要去刷新令牌,否則使用舊的令牌微信方會報令牌已過期類錯誤信息。
authorizer_accesstoken是授權(quán)方小程序令牌,當小程序被授權(quán)后,第三方側(cè)會獲取到authcode即授權(quán)碼,使用該authcode(10分鐘內(nèi)有效,過期后需要重新授權(quán)獲?。┤Q取refresh_accesstoken.當授權(quán)方小程序令牌過期后需要使用refresh_accesstoken去重新獲取。
授權(quán)流程技術解析
該流程適合于授權(quán)方已自主注冊小程序,然后需要授權(quán)給第三方的情況。直接通過快速創(chuàng)建小程序接口注冊的小程序不需要進行該操作。
五. 第三方后臺小程序管理
反正我是把接口基本都實現(xiàn)了,開始也不知道哪些可以用。 按照微信給的api文檔大多數(shù)都能調(diào)通。
第三方平臺就到這里,還有不會的,請給我留言哦!或者去社區(qū)里面發(fā)帖。。。