公衆號第三方平臺開發 教程一 建立公衆號第三方平臺
公衆號第三方平臺開發 教程二 component_verify_ticket和accessToken的獲取
公衆號第三方平臺開發 教程三 微信公衆號受權第三方平臺
公衆號第三方平臺開發 教程四 代公衆號發起網頁受權說明
公衆號第三方平臺開發 教程五 代公衆號處理消息和事件
公衆號第三方平臺開發 教程六 代公衆號使用JS SDK說明
另,感謝一下這個大蝦的博客,這幾篇東西都是在他的博文基礎上完成的,他的博客裏也有一些接口代碼能夠下載
微信開發系列教程html
這一部分挺簡單的,其實就是在頁面上放一個連接,引導用戶跳轉便可api
連接的格式以下:安全
這裏對參數作一下說明微信開發
component_appid即第三方平臺的APPID(以下圖)app
pre_auth_code爲預受權碼,用得到的第三方平臺AccessToken做爲參數進行獲取,具體看下面的代碼函數
redirect_uri爲用戶贊成受權以後跳轉的連接,同時會向該頁面發送用戶的受權碼auth_code,經過這個受權碼便可請求到公衆號的受權信息url
獲取預受權碼的函數spa
/// <summary> /// 用於獲取預受權碼。預受權碼用於公衆號受權時的第三方平臺方安全驗證 /// </summary> /// <param name="component_verify_ticket"></param> /// <returns></returns> public static ResponseCreatePreauthCode Create_preauthcode(string component_access_token) { var urlFormat = "https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token={0}"; object data = null; data = new { component_appid = Config.ServerAppID, }; return CommonJsonSend.Send<ResponseCreatePreauthCode>(component_access_token, urlFormat, data, timeOut: Config.TIME_OUT); }
返回結果示例3d
{
"pre_auth_code":"Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw",
"expires_in":600
}
得到用戶受權碼以後,用auth_Code做爲參數請求公衆號信息。
component_access_token爲第三方平臺accessToken
/// <summary> /// 使用受權碼換取公衆號的受權信息 /// </summary> /// <param name="component_access_token"></param> /// <returns></returns> public static PublicWechatAuthorizerInfo Query_auth(string component_access_token, string auth_code_value) { var urlFormat = "https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token={0}"; object data = null; data = new { component_appid = Config.ServerAppID, authorization_code = auth_code_value }; return CommonJsonSend.Send<PublicWechatAuthorizerInfo>(component_access_token, urlFormat, data, timeOut: Config.TIME_OUT); }
返回結果示例
{ "authorization_info": {"authorizer_appid": "wxf8b4f85f3a794e77", "authorizer_access_token": "QXjUqNqfYVH0yBE1iI_7vuN_9gQbpjfK7hYwJ3P7xOa88a89-Aga5x1NMYJyB8G2yKt1KCl0nPC3W9GJzw0Zzq_dBxc8pxIGUNi_bFes0qM", "expires_in": 7200, "authorizer_refresh_token": "dTo-YCXPL4llX-u1W1pPpnp8Hgm4wpJtlR6iV0doKdY", "func_info": [{"funcscope_category": {"id": 1}}, {"funcscope_category": {"id": 2}}, {"funcscope_category": {"id": 3}}]}