解讀微信第三方平臺-代小程式開發

網際網路修真院發表於2019-05-07

簡單介紹微信小程式服務商-第三方平臺申請、測試以及全網釋出相關流程。另外會著重例證成為第三方平臺後前後端需要做哪些事情。

一. 第三方平臺開發初體驗

開啟微信開放平臺https://open.weixin.qq.com/cgi-bin/frame?t=home/wx_plugin_tmpl&lang=zh_CN。完成開發者資質認證後開啟開發文件https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318292&token=&lang=zh_CN。

勾選第三方平臺許可權集

注: 訊息管理許可權集建議不要勾選,除非業務要求。 若勾選在申請全網釋出資質時微信會對這一項基礎邏輯進行檢測。

image.png

全網釋出以及為什麼需要進行檢測

顧名思義以為是隻要釋出一個小程式,那麼所有的該模板下面的小程式都發布了。 NO!全網釋出只是一種資質。通過稽核後,第三方平臺就可託管被授權的公眾號/小程式,進行登入授權。第三方平臺後端即可通過調api(核心介面:設定域名、設定分類、上傳程式碼、繫結體驗者、獲取體驗二維碼、提交稽核、釋出)去對小程式進行自動化管理。

  1. 流程如下:
    image.png
  2. 登入授權發起頁域名: 公眾號/小程式開發發起授權等操作必須在此域名下。 授權測試公眾號列表 : 測試公眾號/小程式的原始id(不是appid)。 授權事件接收url : 此介面全限定名,用於接收微信官方推送的訊息。如使用者取消授權、元件ticket等。一個小時內會推送六次,程式須返回success響應。 白名單ip地址列表: 不在此列的ip,無法呼叫微信相關介面。
    微信圖片_20190507152003.png

微信圖片_20190507152015.png

這裡說明一下: 微信那邊也有bug,一會說什麼沒有測試資源。其實看到這個圖是已經檢測通過了。強迫症可以再點一次。接下來就是前後端敲程式碼的事情了。

二. 慢慢明朗

如何註冊小程式?

  1. 自主註冊 : 小程式可以是授權方管理員自己去微信公眾平臺自己註冊一個(若認證需要交300認證費),完善好分類後,把appid以及類目提供給第三方。 然後通過授權流程技術https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1453779503&token=&lang=zh_CN授權給第三方。
  2. 第三方通過api介面快速註冊 (有贊、微盟等小程式服務商就是例子): open.weixin.qq.com/cgi-bin/sho…

為什麼需要授權?

如果不進行授權,第三方是無法代開發的。 因為代小程式實現業務必須通過介面去實現,微信既然開放了[第三方平臺開發]這一機制,其實就是希望把被代管的小程式的所有以前在普通小程式後臺上看到的功能全部通過介面開放給第三方。 因為第三方有這個能力去開發並代管。 通過授權後,第三方後臺可以獲取到授權方小程式的介面呼叫令牌即authorizer_accesstoken。通過api介面快速建立小程式後,若註冊成功,微信會推送註冊稽核事件給第三方後臺,裡面會包含appid以及auth_code(使用該授權碼可以換取authorizer_accesstoken)等關鍵資訊。 微信為第三方代小程式實現業務開放的主要介面如下:

image.png

小程式授權完成後,需要登入[小程式後臺-設定-第三方授權管理 ]去繫結授權方小程式。 如下圖:

微信圖片_20190507162323.png

三. 前端小程式的變化

  1. 小程式這邊引入了一個模板(小程式模板開發:developers.weixin.qq.com/miniprogram… 在開發測試階段,前端這邊還是跟開發普通小程式一樣開發。

只是在授權登入的時候需要前端識別一些引數,然後帶給後端。 該引數是第三方平臺後臺在【上傳程式碼】的時候配置進小程式的。api請看:open.weixin.qq.com/cgi-bin/sho… 安全起見,建議對該引數加密一下。 微信官方:為了便於第三方平臺使用同一個小程式模版為不同的小程式提供服務,第三方可以將自定義資訊放置在ext_json中,在模版小程式中,可以使用介面獲取自定義資訊,從而區分不同的小程式。

  1. 前端上傳程式碼 上傳之後就是上傳到開放平臺的後臺草稿箱部分,每一個開發者只有一個草稿。會自動覆蓋上次,也就是說草稿箱最多隻能儲存10個,合適的版本就可以新增模板庫了。模板庫最多也只能新增50個。 前端上傳完成後,第三方平臺可以在小程式後臺看到,然後可以把草稿指定成模板。 然後就可以提交稽核併發布了。
    image.png

四. 漸入佳境

令牌中控臺

熟悉微信開發服務尿性的,都知道微信有個accessToken。 由於微信側沒有區分測試/正式環境,只是給呼叫方50個/天的accessToken的機會,用完了當天就不能再獲取。 但是呼叫方這邊是分了環境的,所以最好呼叫方這邊準備一箇中控臺專門去獲取token。

第三方平臺也一樣,但是本次有兩個令牌:component_accesstoken以及authorizer_accesstoken。component_accesstoken是平臺令牌,每次更新該令牌需要拿每10分鐘一次微信推送過來的ticket去換的。雖然官方說是兩小時有效,筆者測試發現當ticket有變化時需要去重新整理令牌,否則使用舊的令牌微信方會報令牌已過期類錯誤資訊。

authorizer_accesstoken是授權方小程式令牌,當小程式被授權後,第三方側會獲取到authcode即授權碼,使用該authcode(10分鐘內有效,過期後需要重新授權獲取)去換取refresh_accesstoken.當授權方小程式令牌過期後需要使用refresh_accesstoken去重新獲取。

授權流程技術解析

該流程適合於授權方已自主註冊小程式,然後需要授權給第三方的情況。直接通過快速建立小程式介面註冊的小程式不需要進行該操作。

open.weixin.qq.com/cgi-bin/sho…

image.png

五. 第三方後臺小程式管理

反正我是把介面基本都實現了,開始也不知道哪些可以用。 按照微信給的api文件大多數都能調通。 第三方平臺就到這裡,還有不會的,請給我留言哦!或者去社群裡面發帖。。。

image.png
image.png

相關文章