微信网页授权

记录微信网页授权注意事项

1. 登录微信公众平台

微信公众平台 (qq.com)

2. 配置信息

 接口配置信息:

        公众号平台会调用这个url,参数如下

public class WechatRequestModel
    {
        public string Signature { get; set; }

        public string TimeStamp { get; set; }

        public string Nonce { get; set; }

        public string Echostr { get; set; }
    }

        接口定义:这里会进行验证,结合token等参数验证.返回成功之后,配置完成.

[NonUnify]
        [HttpGet("wechat/checkToken")]
        public ActionResult ValidToken([FromQuery]WechatRequestModel model)
        {
            ContentResult content = new ContentResult();
            string echoStr = model.Echostr;
            //通过验证,出于安全考虑。(也可以跳过)
            if (CheckSignature(model))
            {
                if (!string.IsNullOrEmpty(echoStr))
                {
                    //将随机生成的 echostr 参数 原样输出
                    
                    content.Content = echoStr;
                    return content;
                }
            }
            content.Content = "校验失败";
            return content;
        }

3.开始请求 按照下面的步骤

1 第一步:用户同意授权,获取code

2 第二步:通过 code 换取网页授权access_token

3 第三步:刷新access_token(如果需要)

4 第四步:拉取用户信息(需 scope 为 snsapi_userinfo)

5 附:检验授权凭证(access_token)是否有效

第一步:根据规则,编辑访问获取code的url

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9b853ec4139b8390&redirect_uri=http%3A%2F%2Ft4450798j6.51vip.biz%2Fapi%2Fwechat%2FgetCallback&response_type=code&scope=snsapi_base&state=123#wechat_redirect

redirect_url就是上面 接口信息配置中的 回调url.

发到微信客户端,测试,发现 redirect_uri域名与后台配置不一致,错误码10003

此时需要在开发平台修改网页授权获取用户信息

 

 填写的内容和js安全域名接口一致即可.

 接下来还需要微信扫码关注 

此时 访问我们编辑的url正常,但是我们需要一个回调接口来接收返回值code

/// <summary>
    /// 微信accessToken返回值
    /// </summary>
    public class WechatAccessTokenModel
    {
        public string Access_Token { get; set; }
        /// <summary>
        /// 过期时间 秒
        /// </summary>
        public int Expires_In { get; set; }
        public string Refresh_Token { get; set; }
        public string Openid { get; set; }
        public string Scope { get; set; }
    }

[HttpGet("wechat/getCallback")]
public async Task<ActionResult> GetCallback([FromQuery] WechatCallBackModel model)
{
   var code = model.Code;
}

这里的wechat/getCallback接口就是前面 根据规则,编辑访问获取code的url中的 redirect_uri.

正常到这一步 就可以获取code

然后进行第二步 ,获取access_token以及openId 

获取 code 后,请求以下链接获取access_token:         https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

返回值:

{
  "access_token":"ACCESS_TOKEN",
  "expires_in":7200,
  "refresh_token":"REFRESH_TOKEN",
  "openid":"OPENID",
  "scope":"SCOPE" 
}

先记录到这里.

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值