微信第三方平台处理授权公众号的网页授权接口

Posted 剑术之道,讲究如行云流水,任意所至。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信第三方平台处理授权公众号的网页授权接口相关的知识,希望对你有一定的参考价值。

写一OAuthController的MVC控制器,用来接收公众号的网页授权请求

 1 public async Task<ActionResult> RedirectCallback(string state, string code = "", string appid = "", string clienturl = "")
 2         {
 3             if (code.Length == 0)
 4             {
 5                 if (clienturl.IndexOf("?") != -1)
 6                     return Redirect(OAuthCallback + clienturl + "&errcode=-1&errmsg=" + HttpUtility.UrlEncode("用户禁止授权"));
 7                 else
 8                     return Redirect(OAuthCallback + clienturl + "?errcode=-1&errmsg=" + HttpUtility.UrlEncode("用户禁止授权"));
 9             }
10 
11             var ticketValue = "";
12             string path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"configs\WeChat.ThirdpartyPlatform.ComponentVerifyTicket.xml";
13             using (StreamReader sr = new StreamReader(path, Encoding.UTF8))
14             {
15                 string txt = sr.ReadToEnd();
16                 string[] lines = txt.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
17                 if (lines.Length == 4)
18                     ticketValue = lines[3];
19             }
20             var accessTokenValue = await Authentication.GetComponentAccessToken(AppId, AppSecret, ticketValue);
21             var jsonStr = await Util.HttpGetAsync("https://api.weixin.qq.com/sns/oauth2/component/access_token?appid=" + appid + "&code=" + code + "&grant_type=authorization_code&component_appid=" + AppId + "&component_access_token=" + accessTokenValue);
22             //if (jsonStr.Contains("errcode"))
23             //{
24             //    response.Content = new StringContent(jsonStr, Encoding.UTF8, "text/html");
25             //    return response;
26             //}
27             JObject result = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(jsonStr);
28             string openid = result["openid"].Value<string>();
29             if (clienturl.IndexOf("?") != -1)
30                 return Redirect(OAuthCallback + clienturl + "&errcode=0&openid=" + openid);
31             else
32                 return Redirect(OAuthCallback + clienturl + "?errcode=0&openid=" + openid);
33         }

 注意:由第三方平台授权的网页授权,不需要将“公众号设置->功能设置->网页授权域名”特地设置为返回url对应的域名。

 

以上是关于微信第三方平台处理授权公众号的网页授权接口的主要内容,如果未能解决你的问题,请参考以下文章

微信公众平台,微信网页授权,redirect_uri参数错误,解决方法!

为啥微信公众平台的“网页授权”接口获取access

微信公众号开发15正式公众号的配置

微信第三方登录(静默授权和非静默授权)

微信授权获取code/openid

微信公众平台,微信网页授权,redirect_uri参数错误,解决方法!