这是一个利用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. cdoj第13th校赛初赛A - AC Milan VS Juventus 【枚举】

    http://acm.uestc.edu.cn/#/contest/show/54 A - AC Milan VS Juventus Time Limit: 3000/1000MS (Java/Oth ...

  2. hdoj1251-统计难题 【字典树】

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory ...

  3. LibreOJ 6282 数列分块入门 6(在线插入在线查询)

    题解:还是分块,将每个块存入vector,然后在插入的时候就是sqrt(n)级的重构,如果块太大了,暴力将这个块拆开. 代码如下: #include<cmath> #include< ...

  4. swift - 封装 GCDTimer 和 NSTimer

    封装的类代码 import UIKit /// 控制定时器的类 class ZDTimerTool: NSObject { /// 定时器 // private var timer: Timer? / ...

  5. win下php的memcached的安装与使用

    1.memcache的php扩展与memcached服务器的区别? php要操作memcached就必须要安装memcache的扩展, 在http://windows.php.net/download ...

  6. MariaDB · 版本特性 · MariaDB 的 GTID 介绍

    本文来自阿里的数据库内核月报,写的很详细,主要是关于mariadb开启gtid之后做主从的方法. 原文连接:http://mysql.taobao.org/monthly/2016/02/08/

  7. laravel在控制器中赋值给视图

    1.控制器 2.视图

  8. Windows系统文件mshtml.dll

    今天,在vista 32bit,sp 2,IE7的机器上跑开发的软件产品,打开IE,被测系统总是崩溃,换了一台机器,同样的配置环境,却没有重现. 同事的分析很详细,学习了 I tried this c ...

  9. spring-boot @Async 的使用、自定义Executor的配置方法

    1. TaskExecutor Spring异步线程池的接口类,其实质是java.util.concurrent.Executor Spring 已经实现的异常线程池: 1. SimpleAsyncT ...

  10. HTML <img> 标签的 alt 属性

    定义和用法 alt 属性是一个必需的属性,它规定在图像无法显示时的替代文本. 假设由于下列原因用户无法查看图像,alt 属性可以为图像提供替代的信息: 网速太慢 src 属性中的错误 浏览器禁用图像 ...