公众号第三方平台开发 教程一 建立公众号第三方平台
公众号第三方平台开发 教程二 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}}]}