在做微信开发的时候,会遇到这样的场景:一个公众号,会有多个业务:官网、论坛、商城等等
微信网页授权域名 目前最多可以填写两个!!!,那么问题来了?这应该怎么办?
答案就是: 做一个中转服务!
域名1: www.test.com
域名2: bbs.test.com
中转域名:zhongzhuan.test.com
(说明! 域名不一定非得是子域名!例如 www.baidu.com 也可以)
网上的教程大多数都是php的 C#的少之又少,现在我来给大家做一个,原理很简单,实现也很简单
话不多说,直接粘贴代码,简单的!
public class AuthController : Controller
{ //接受要跳转的url public ActionResult Index(string redirectUri) //redirectUri 要跳转的网页链接 例如 bbs.test.com { if (string.IsNullOrWhiteSpace(redirectUri)) { ViewBag.error = "跳转链接参数错误"; return View(); } var gotoUri = "gotoRedirectUri=" + redirectUri; var link = "http://zhongzhuan.test.com/Auth/AuthCode?" + gotoUri; var uri = WxConfig.getCodeUri(link); return Redirect(uri); } /// <summary> /// 授权跳转到这里 /// </summary> /// <param name="code">微信的code</param> /// <param name="state">微信的state</param> /// <param name="gotoRedirectUri">要跳转的url</param> /// <returns></returns> public ActionResult AuthCode(string code,string state,string gotoRedirectUri) { //判断code是否为空 if(string.IsNullOrWhiteSpace(code)) { ViewBag.error = "code 为空!"; return View(); } if(string.IsNullOrWhiteSpace(gotoRedirectUri)) { ViewBag.error = "跳转链接不能为空!"; return View(); } return Redirect("http://"+gotoRedirectUri+"?code="+code+"&state="+state); } }
所用到的类
public class WxConfig
{ private static string appId => ConfigurationManager.AppSettings["WxAppId"]; //授权页面 public static string getCodeUri(string redirect) { var enencodeUri = HttpUtility.UrlEncode(redirect.ToLower()); //编码 return $@"https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&redirect_uri={enencodeUri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"; }