wechat 微信扫码登录

一、申请应用

  1. 注册登录

  2. 创建网站应用

  3. 填写应用信息 [官网]

    1、注意点

    # 1、应用官网地址(域名、域名/子目录,例如:www.baidu.com、www.baidu.com/fanyi)。
    # 2、登记表需与网站应用填写一致(登记表有说明)。
    
  4. 授权回调域 注意(只需填域名,无需子目录)

二、应用对接 任选其中一种

  1. 前端 [官网]
    <html xmlns="http://www.w3.org/1999/xhtml">
    
       <head>
          <title></title>
          <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
       </head>
    
       <body>
          <div id="wechat-container" style="width: 100%;height: 100%;">
    
          </div>
       </body>
    
    </html>
    <script>
       var data = new WxLogin({
          self_redirect: false, // 关闭内部跳转
          id: "wechat-container",
          appid: "appid",
          scope: "snsapi_login",
          // 回调地址 (例:https://www.baidu.com/fanyi/wechat-callback)
          redirect_uri: "https%3A%2F%2Fwww.baidu.com%2Ffanyi%2Fwechat-callback",// url encode
          state: "",
          style: "",
          href: ""
       });
    </script>
    
  2. 后端
     /// <summary>
    /// 微信扫码登录跳转地址
    /// </summary>
    [HttpGet("[action]")]
    public void QRRedirect()
    {
       var wechatOption = _configuration.GetSection("Wechat");
    
       // 设置参数
       string[] @params = new[]
       {
             $"appid={wechatOption.GetValue<string>("AppId")}}",
             $"redirect_uri={Uri.EscapeDataString("https://www.baidu.com/fanyi/wechat-callback")}",
             "response_type=code",
             "scope=snsapi_login",
             $"state={Guid.NewGuid():N}#wechat_redirect"
       };
    
       var url = $"https://open.weixin.qq.com/connect/qrconnect?{string.Join("&", @params)}";
    
       // 重定向
       HttpContext.Response.StatusCode = StatusCodes.Status302Found;
       HttpContext.Response.Headers.Location = url;
    }
    
  3. 待续
posted @ 2024-06-04 13:30  1764564459  阅读(69)  评论(0编辑  收藏  举报