这是一个利用webform做出来的简单demo,微信授权,获取微信用户的基本信息.方便以后加深记忆.

public partial class Index : System.Web.UI.Page
{
//开发者appID
public static string appID = "xxxxxx";
//
public static string appsecret = "xxxxx"; public string a="",b=""; protected void Page_Load(object sender, EventArgs e)
{
string code = Request["code"];
if (!string.IsNullOrEmpty(code))
{
//获取access_token
string url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appID + "&secret=" +
appsecret + "&code=" + code + "&grant_type=authorization_code";
JObject jObject = GetMsg(url, true);
//从返回的数据中取出openid和access_token来从微信服务器上获取用户信息
string access_token = jObject["access_token"].ToString();
string openId = jObject["openid"].ToString();
string uri= "https://api.weixin.qq.com/sns/userinfo?access_token="+access_token+"&openid="+openId+"&lang=zh_CN";
JObject json = GetMsg(uri,false);
b = json["nickname"].ToString();
}
else
{
//对回调网址进行UrlEncode编码
string uri = HttpUtility.UrlEncode("http:/xxdkys.org/index.aspx");
//向微信发送token请求
string url1 = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appID + "&redirect_uri=" + uri + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
Response.Redirect(url1);
}
} /// <summary>
/// 获取url中返回的数据,转换为json对象
/// </summary>
/// <param name="url">跳转Uri</param>
/// <param name="method">postOrGet</param>
/// <returns></returns>
JObject GetMsg(string url,bool method)
{
//利用HttpWebRequest方法向Url发送请求
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
if (method)
{ }
else
{
webRequest.Method = "Get";
}
//获取url返回的资源
WebResponse response = webRequest.GetResponse();
//利用StreamReader, 为指定的流/文件名初始化 StreamReader 类的新实例,并且使用默认的编码(UTF-8)读取文件
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
//利用实例的对象的ReadToEnd()读取所有信息
JObject jObject = JObject.Parse(reader.ReadToEnd());
return jObject;
}
}

下面这种方法同样可以获取到

        //开发者appID
public static string appID = "xxxx";
//开发者appsecret
public static string appsecret = "xxxxxx"; public string a="",b=""; protected void Page_Load(object sender, EventArgs e)
{
string code = Request["code"];
if (!string.IsNullOrEmpty(code))
{
//获取access_token
string url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appID + "&secret=" +
appsecret + "&code=" + code + "&grant_type=authorization_code";
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;
wc.Encoding = Encoding.UTF8;
string ruturnText = wc.DownloadString(url);
JObject jObject = JObject.Parse(ruturnText);
string access_token = jObject["access_token"].ToString();
string openId = jObject["openid"].ToString();
string userInfo = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openId + "&lang=zh_CN";
a = wc.DownloadString(userInfo);
JObject json = JObject.Parse(a);
b = json["nickname"].ToString();
}
else
{
//对回调网址进行UrlEncode编码
string uri = HttpUtility.UrlEncode("http://blkys.org/index.aspx");
//向微信发送token请求
string url1 = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appID + "&redirect_uri=" + uri + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
Response.Redirect(url1);
}
}

webform获取微信用户的授权的更多相关文章

  1. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-7.授权登录获取微信用户个人信息实战

    笔记 7.授权登录获取微信用户个人信息实战         简介:讲解使用授权码code获取用户个人信息接口 关键点:看微信文档,字段尽量用拷贝 1.通过code获取access_token      ...

  2. 利用Senparc.Weixin SDK 实现微信用户的授权,并获取信息

    前一段时间在学校做过一个项目,就是利用的Senparc.Weixin SDK 做的,于是翻看以前代码,虽然有注释,但是还是看的迷迷糊糊的,干脆就单步执行一遍看看是怎么实现的,然后就重新写了个简易的授权 ...

  3. 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...

  4. 微信公众平台开发—利用OAuth2.0获取微信用户基本信息

    在借鉴前两篇获取微信用户基本信息的基础下,本人也总结整理了一些个人笔记:如何通过OAuth2.0获取微信用户信息 1.首先在某微信平台下配置OAuth2.0授权回调页面: 2.通过appid构造url ...

  5. Magicodes.WeiChat——使用OAuth 2.0获取微信用户信息

    使用Magicodes.WeiChat,可以很方便的获取到微信用户的信息.在使用OAuth 2.0之前,你先需要做以下操作: 1)在开发者中心修改[网页授权获取用户基本信息],在弹出的界面输入自己的根 ...

  6. 小白学react之网页获取微信用户信息

    通过上一篇<小白学react之EJS模版实战>我们学习了怎样通过EJS模版生成我们高定制化的index.html文件. 本篇我们将会继续延续我们的alt-tutorial项目的实战计划.去 ...

  7. SpringBoot中获取微信用户信息从未如此简单!

    前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要 ...

  8. java、JavaScript获取微信用户信息登录优化方案

    1.获取微信用户信息要调用微信的好几个接口,再加上自己系统的接口就会变的很慢,影响用户体验,之前走过的弯路我就不赘述了,直接说新的方案. 2.第一步都是向微信发起获取用户code请求: 请求接口:ht ...

  9. 小程序获取微信用户的openid

    小程序获取微信用户的openid //index.js //获取应用实例 const app = getApp() Page({ globalData: { appid: '11121221a89e0 ...

随机推荐

  1. 百度BAE的使用

  2. 文件的概念以及VC里的一些文件操作API简介

    文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文 ...

  3. Python3 tuple 函数

    Python3 tuple 函数  Python3 内置函数 描述 tuple 函数将列表转换为元组.. 语法 以下是 tuple 的语法: tuple( seq ) 参数 seq -- 要转换为元组 ...

  4. Python3 ascii() 函数

    Python3 ascii() 函数  Python3 内置函数 描述 ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 r ...

  5. TZOJ 4855 排座椅(贪心)

    描述 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来后,只有有限的D对同学上课时会交头接耳.同学们在教室 ...

  6. Spring框架之Bean的作用范围和生命周期的注解

    1. Bean的作用范围注解 * 注解为@Scope(value="prototype"),作用在类上.值如下: * singleton -- 单例,默认值 * prototype ...

  7. install package

    http://www.michael-noll.com/blog/2014/03/17/wirbelsturm-one-click-deploy-storm-kafka-clusters-with-v ...

  8. Linux sar

    一.简介 sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调 ...

  9. web服务器部署过程记录

    由于之前没有服务器部署经验,又选择了所有软件都是单独编译安装,遇到很多问题,解决之后还是学习到了很多新东西. 如今回过头来还是选择lnmp集成环境的部署方式比较方便快捷:https://lnmp.or ...

  10. Linux应用开发入门(转)

    今天偶然看到这篇文章,做个入门了解还是不错的. 前一阵子在QQ上和朋友聊天的时候,总会看到有人说Linux上的应用程序开发是高手才可以完成的,而且这种“迷信”在目前似乎还很普遍.然而,情况并不是这样的 ...