微信企业号 - OAuth验证接口

获取当前微信端用户信息 - 微信企业号中的账号以及设备ID

企业应用中的URL链接(包括自定义菜单或者消息中的链接),可以通过OAuth2.0验证接口来获取成员的身份信息。

通过此接口获取成员身份会有一定的时间开销。对于频繁获取成员身份的场景,建议采用如下方案:

1、企业应用中的URL链接直接填写企业自己的页面地址

2、成员跳转到企业页面时,企业校验是否有代表成员身份的cookie,此cookie由企业生成

3、如果没有获取到cookie,重定向到OAuth验证链接,获取成员身份后,由企业生成代表成员身份的cookie

4、根据cookie获取成员身份,进入相应的页面

                                             ——以上来自微信

注意,此URL的域名,必须完全匹配企业应用设置项中的’可信域名’(如果你的redirect_uri有端口号,那’可信域名’也必须加上端口号),否则跳转时会提示redirect_uri参数错误。

首先企业获取code,根据code获取成员信息

代码实例:

//页面判断是否有code
 if (!IsPostBack)
{
   string code = "";
    try
    {
        if (Request.QueryString["code"].ToString() != null)
        {
           code = Request.QueryString["code"].ToString();
        }
    }
   catch (Exception ex) {
       string url = getCode();
       Response.Redirect(url);//回发获取 code
   }
   string userJson = GetUserId(code);
}

//获取code方法
 private string getCode()
        {
            string appid = ConfigHelper.GetParameterValue("SystemConfig", "corpID");//corpID
            string redirect_uri="";//编译后的URL
            string strUrl = Request.Url.AbsoluteUri;
            if (strUrl != null)
            {
                redirect_uri = HttpUtility.UrlEncode(strUrl, Encoding.UTF8);
            }
            string response_type = "code";
            string scope = "snsapi_base";
            string state = "1";
            string url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type={2}&scope={3}&state={4}#wechat_redirect", appid, redirect_uri, response_type, scope, state);
       return url;//返回调用的URL及附带的参数,这个URL为现在页面的URL
        }
Response.Redirect(url);//提交URL

/// <summary>
/// 获取用户ID
/// </summary>
/// <param name="codeNode">获取到的code</param>
/// <returns>返回格式为JSON</returns>
private string GetUserId(string codeNode)
  {
      AccessTokenEntity entity = TokenHelp.GetTokenEntity();
      string access_token = entity.Access_Token;
      string code = codeNode;
      string agentid ="1";
      var strUrl = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={0}&code={1}&agentid={2}", access_token, code, agentid);
      string str = TokenHelp.GetPage(strUrl, "");
      return str;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值