讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 22.5 公眾號第三方平台 >

22.5 公眾號第三方平台

公眾號第三方平台是為了讓公眾號運營者,在面向垂直行業需求時,可以一鍵授權給公眾號第三方平台(並且可以同時授權給多家第三方),通過第三方平台來完成業務,開放給所有通過開發者資質認證後的開發者使用。第三方平台申請通過後的界面如圖22-7所示。

圖22-7 第三方平台

開發者在申請創建公眾號第三方平台時,需要填寫很多開發參數。下面針對這些開發參數進行如下說明。

授權流程相關的參數說明如下。

授權發起頁域名:指公眾號在登錄授權給第三方平台時的授權回調域名,在公眾號進行登錄授權流程中,必須從本域名內網頁跳轉到登錄授權頁,才可完成登錄授權。授權成功後會回調授權時提供的URI,公眾平台會檢查URI,必須保證URI所屬域名與服務申請時提供的授權域名一致。請注意,域名不需要帶有「http://」等協議內容,也不能在域名末尾附加詳細目錄,應嚴格按照類似www.qq.com的寫法。

發起授權頁的體驗URL:用於審核人員前往授權頁體驗,確認流程可用性。在提交全網發佈時,務必保證該URL可直接體驗。全網發佈之前,該項可先填為發起頁域名。

授權測試公眾號列表:在全網發佈之前,僅該列表內的公眾號才可進行授權,以便測試。需要填寫公眾號的原始ID,個數最多為10個,以英文「;」隔開。

授權事件接收URL:用於接收取消授權通知、授權成功通知、授權更新通知,也用於接收ticket。ticket是驗證平台方的重要憑據,服務方在獲取component_access_token時需要提供最新推送的ticket,以供驗證身份合法性。此ticket作為驗證服務方的重要憑據,請妥善保存。

授權後代替公眾號實現業務的說明如下。

公眾號消息校驗Token:開發者在代替公眾號接收到消息時,用此Token來校驗消息。其用法與普通公眾號的token一致。

公眾號消息加解密key:在代替公眾號收發消息的過程中使用。它必須是長度為43位的字符串,只能是字母和數字。其用法與普通公眾號的symmetric_key一致。

公眾號消息與事件接收URL:該URL用於接收已授權公眾號的消息和事件,消息內容、消息格式、簽名方式、加密方式與普通公眾號接收的一致,唯一區別在於簽名Token和加密symmetric_key使用的是服務方申請時所填寫的信息。由於消息的具體內容不會變更,因此根據消息內容中的ToUserName,服務方可以區分出具體消息所屬的公眾號。需要注意的是:

1)考慮到服務需要接收大量的授權公眾號的消息,為了便於做業務分流和業務隔離,必須提供如下形式的URL。www.abc.com/aaa/$APPID$/bbb/cgi。

其中,$APPID$在實際推送時會替換成所屬的已授權公眾號的AppID。

2)第三方平台只需獲得某個業務模塊的授權(而不需要獲得客服與菜單權限的授權),然後在收到該業務模塊事件推送後,如果該事件是允許進行5s內被動回復消息給粉絲的,那麼第三方就可以被動回復(業務模塊的哪些事件推送允許被動回復用戶,哪些不允許,需咨詢具體業務模塊)。

3)如果第三方希望實現實時獲知公眾號有新粉絲關注,只需要收到關注事件後回復success即可,不必另行回復,以免公眾號出現多個第三方同時進行粉絲關注後的自動回復。

網頁開發域名:最多可以填寫3個,每個都以英文「;」符號隔開。每個網頁開發域名會產生兩個效果(請注意,域名無須帶有「http://」等協議內容,也不能在域名末尾附加詳細目錄)。需要注意的是:

1)在該域名和符合要求的下級域名內,可以代替旗下授權後的公眾號發起網頁授權。下級域名必須是$APPID$.wx.abc.com的形式($APPID$為公眾號的AppID的替換符,建議第三方用這種方式,若需做域名映射),如果不按這種形式來做,旗下公眾號違規將可能導致整個網站被封。

2)在該域名(一級域名)內可以代替旗下授權後公眾號調用JS SDK(需要配合公眾號的AppID)

其他參數的說明如下。

白名單IP地址列表:僅當開發者IP地址在該列表中時,才被允許調用相關接口。它最多填寫20個IP地址,以英文「;」隔開。後續有出口IP變更時,一定要先在申請資料中填寫並覆蓋現網,否則會被攔截。

註:對於申請資料中填寫的所有完整有效的URL,都需要做一次echo校驗,以確定該URL是有效可連通的。這個與普通公眾號開發模式下的URL校驗方式一致,只是使用的Token為服務方的Token。

第三方平台開發參數配置如圖22-8所示。

圖22-8 第三方平台開發參數