这是一个利用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. TZOJ 4746 Xiangqi(模拟棋盘数组)

    描述 Xiangqi is one of the most popular two-player board games in China. The game represents a battle ...

  2. PTA 习题集5-18 打印选课学生名单(哈希)

    假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数:K(≤2500) ...

  3. volatile是否就是原子性/线程同步的

    在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...

  4. Aactivity和Service之间的通信

    一.在activity中定义三个按钮 一个开启服务  一个关闭服务,还有一个是向服务发送广播 当创建出Serevice时先执行Service的onCreate()创建服务后只执行一次 以后每次点击开启 ...

  5. MVC,MVP,MVVM区别联系

    本质上都是MVC,MVC在不同技术中的应用衍生出MVP,MVVM MVC:b/s MVP:c/s,尤其winform MVVM:wpf http://www.codeproject.com/Artic ...

  6. code1213 解的个数 扩展欧几里得

    很不错的题,加深了我对exgcd的理解 (以前我认为做题就是搜索.dp...原来数学也很重要) 理解了几个小时,终于明白了.但我什么都不打算写. 看代码吧: #include<iostream& ...

  7. Jmeter参数化HTTP request中Send Files With The Request的文件路径和文件名

  8. 上海第八中学 shader

    http://shiba.hpe.cn/jiaoyanzu/wuli/soft/xna.aspx?classId=4

  9. 【commons-httpclient】Java中HttpClient工具访问Web请求

    注意jar包是: HttpClient工具使用 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程 ...

  10. Oracle 输出树形结构

    Oracle 输出树形结构 树形结构,根 select connect_by_root(cat.parentid) root,cat.id,cat.parentid,cat.name,cat.code ...