一、基礎說明
這裡所說的「通用介面(CommonAPIs)」是使用微信公眾帳號一系列進階功能的必備驗證功能(應用於開發模式)。
我們透過微信後台唯一的憑證,向通用介面發出請求,得到存取權杖(AccessToken),然後使用存取權杖去使用各項需要驗證的進階功能,例如自訂選單、取得用戶資訊、單發訊息、群發訊息等等。
目前所有的服務號碼和通過認證的訂閱號,都可以在微信公眾帳號後台的【功能】>【高級功能】>【開發模式】下的「開發者憑證」一欄找到AppId和AppSecret兩個字串,這兩個字串就是獲得AccessToken的依據,因此需要嚴格保密,如果發現有洩漏的可能,或者出於安全策略,應當使用邊上的「重置」按鈕對AppSecret進行隨機產生(注意AppId不會變化),並且同時修改程式中的對應參數。
二、介面使用
在Senparc.Weixin.MP SDK中,通用介面的基本方法都在Senparc.Weixin.MP.CommonAPIs命名空間下:
檔案說明如下:
# AccessTokenContainer.cs - 一個AccessToken容器(幫助自動更新AccessToken,因為每一個AccessToken都有一個有效期)
CommonApi.cs - 提供取得AccessToken的通用方法
CommonApi.Menu.cs - 自訂選單所有介面
CommonJsonSend.cs - 對通用介面所有介面類型的一些程式碼處理
上述類別的詳細方法及說明可以看開源程式碼的註解: https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP/Senparc.Weixin.MP/ CommonAPIs
有了AccessTokenContainer,我們可以直接這樣取得AccessToken:
if (!AccessTokenContainer.CheckRegistered(appId))//检查是否已经注册 { AccessTokenContainer.Register(appId, appSecret);//如果没有注册则进行注册 } var result = AccessTokenContainer.GetAccessTokenResult(appId); //获取AccessToken结果
當然也可以更簡單地一步到位:
var result = AccessTokenContainer.TryGetAccessToken(appId, appSecret);
上述取得到的result有access_token和expires_in兩個屬性,分別儲存了AccessToken字串和過期時間(秒),如果使用AccessTokenContainer.TryGetAccessToken()方法,則可以徹底忽略的expires_in存在,如果過期,系統會自動重新取得。
更多微信公眾平台開發:通用介面說明相關文章請關注PHP中文網!