知识点

相关文章

更多

最近更新

更多

微信开发——通过授权获取用户的基本信息

2019-03-02 01:08|来源: 网路

这年头,招个人不容易,现在大小活都得干了, 现在干起了微信开发这活儿,顺带写点经验。

上一回,写了篇文章是封装微信接口消息的处理的,具体可以看:实现虽易,写好不易——小玩意也能体现编码功力,微信消息处理框架发布

现在来谈谈如何获取通过微信提供的接口来获取微信用户所写的基本信息,包括国家,省,市,昵称。当然,要获取用户的信息,是要经过用户授权。关于这部份的文档,点击这里可以看到。

我要说的是具体的操作。

 

一、填写授权回调页面的域名

在这里填的是 wx.alinq.org。在获得用户的授权后,会跳转到一个由开发人员指定的页面,该页面的链接必须在该域名下。如果没有填写的话,会出现一个页面链接无效的页面。

 

二、引导用户到指定的授权页面

例如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

关于参数的解释,具体可以参考微信相关的文档。值得注意的是 redirect_uri 是一个 url ,必须要对它进行 url 编码,在生成该 url 后,你可以到 http://cli.im/text/2014052714?4QbdC 来对把 url 生成一个二维码,然后在微信里扫一扫来进行测试。 

扫一扫后:

 

三、最后奉上完整实现的代码

下面是完整的代码,希望对大家有用。^_^

<%@ WebHandler Language="C#" Class="UserAuth" %>

public class UserAuth : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
 
        var appid = "wxf1c24c60e3ac13b7";
        var secret = "5902b9817acb7a290d4b7c2e6e97d4d3";

        var code = context.Request.QueryString["Code"];
        if (string.IsNullOrEmpty(code))
        {
            var url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=http%3a%2f%2fwx.alinq.org%2fTest%2fUserAuth.ashx&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect", appid);
            context.Response.Redirect(url);
        }
        else
        {
            var client = new System.Net.WebClient();
            client.Encoding = System.Text.Encoding.UTF8;

            var url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, secret, code);
            var data = client.DownloadString(url);

            var serializer = new JavaScriptSerializer();
            var obj = serializer.Deserialize<Dictionary<string, string>>(data);
            string accessToken;
            if (!obj.TryGetValue("access_token", out accessToken))
                return;

            var opentid = obj["openid"];
            url = string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", accessToken, opentid);
            data = client.DownloadString(url);
            var userInfo = serializer.Deserialize<Dictionary<string, object>>(data);
            foreach (var key in userInfo.Keys)
            {
                context.Response.Write(string.Format("{0}: {1}", key, userInfo[key]) + "<br/>");
            }
        }
    }
}

 


最后,留下联系方式,做微信开发的同学,有啥问题可以讨论讨论,当然,讨论其它方面的技术问题也是可以的。

QQ: 81932759

Q群一: 71418067

Q群二: 88718955

上海的朋友,可以扫一扫下这面这个公众号,建这个公众号的目的,希望能够通过组织一些线下活动,让更多的程序员相互认识。大家放心,这个公众号是绝对不会打扰大家的。

 

另外,再顺便给大家介绍我写的另外一款免费软件:

千呼万唤岂出来,写款软件不容易——Visual Entity 2.0 发布

 

 


转自:http://www.cnblogs.com/ansiboy/p/3755158

相关问答

更多
  • 没有办法的,微信把用户信息控制的很严,只会给开发者一个openId,这是用户的微信号加密后的一串唯一标识
  • 关于网页授权的两种scope的区别说明 1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面) 2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。 3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才 ...
  • 主要是在交货前充分做好程序测试,是否能满足你的需求。 另外,售后服务一定要有保证,如果有更新协议的话最好确定更新时间和周期; 基本上就这样,最好选择一些信誉比较好的公司吧。企业开发微信小程序要明确自己的需求。 把需求提交给产品进行设计。 设计和开发做好小程序后提交审核最终上线。
  • 1. 微信小程序教程主要是前端技术。 2. 在学习下小程序的文档即可。
  • 在用户没有关注的情况下,还是会产生一个与公众号对应的openid,可以根据这个openid和基础支持的access_token(不是用code换取的access_token)获取到用户的基本信息 用户信息中的subscribe 是为0的,表示没有关注。
  • 登录微信你的公众平台 可以看到有个开发者中心, 里面还有相关的开发文档可以下载 如果帮到你,请采纳!
  • 楼主,想问一下 调用获取微信用户信息的接口是可以随时调用,不依赖于其他条件吗?比如小程序中的获取用户信息的接口调用是不依赖于小程序是否启动吗
  • 1. 看你的资源是如何的。 2. 如果有好的技术就可以开发小程序。 3. 如果自己有实体的企业可以开发一个自己的小程序。
  • 微信小程序”开发之前必须要完成和注册认证。 您好,开发微信小程序之前必须要完成注册认证,你也可以找微信第三方开发商,具体你可以百度一下。 微信小程序申请流程如下: 1. 进入微信公众平台官方网站,点击右上方“立即注册”。 2. 在选择注册账号类型的页面,点击左下方的“小程序”。 3. 填写需要注册的邮箱、密码以及验证码后,点击“注册”按钮。注意:需要之前没有在公众号注册过的邮箱,每个邮箱仅能申请一个小程序,填写完成以后会发送一封确认邮件到邮箱。 4. 登录注册用的邮箱,激活账号。 5. 接下来填写主题类型、 ...
  • 1)在“获取用户基本信息”接口里得到的客户信息比“OAuth2.0网页授权”接口还多,那么为何还要用“OAuth2.0网页授权”接口呢? 2)如果只要获取OpenID的话,是不是只用“接收普通信息”接口就够呢? 3)在用户没有重新关注的情况之下,用户每次发送消息里的OpenID是否不变?