最近做了一个微信登录网站的项目,按照微信开放平台写了一个微信登录的sdk和对应使用的一个例子。
其实微信登录的流程很简单,需要在开发者平台上注册一个账号,进入后台管理后需要自己添加一个网站应用,添加网站应用成功后会得到AppID和AppSecret,这两个值在接下来的编程中会用到。
按照开发文档里的请求步骤笔者已经开发好对应的sdk,实测可用。下面讲下简单的用法,最后会将源码传上。
源码预览图:
首先需要你在你的网站应用程序下的Global.asax文件里面Application_Start添加设置appid和secret的方法:
[C#] 纯文本查看 复制代码 void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
//在这里设置你的appid和secret
var appid = "";//应用唯一标识,在微信开放平台提交应用审核通过后获得
var secret = "";//应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
WeiXin.SetWxLoginGlobalCredential(appid, secret);
}
然后在逻辑页面组织访问登录二维码的参数:
[C#] 纯文本查看 复制代码 protected void Page_Load(object sender, EventArgs e)
{
//组织参数并跳转到微信登录二维码页面 用户授权后会带code
string state = new Random().Next(1,1000).ToString();
HttpCookie stateCookie = new HttpCookie("weixinState", state);
Response.Cookies.Add(stateCookie);
string redict_uri = "http://www.sufeinet.com/GetWeixinUserInfo.aspx";//这里需要填写你自己的网站域名所对应的url 可带参数
Response.Redirect(WeiXin.BuildWxLoginWebCodeUrl(HttpUtility.UrlEncode(redict_uri), state));
}
最后在需要获取微信用户信息的页面获取微信用户的信息:
[C#] 纯文本查看 复制代码 protected void Page_Load(object sender, EventArgs e)
{
string state = Request.QueryString["state"];
string code = Request.QueryString["code"];
var cookie = Request.Cookies["weixinState"];
if (cookie.Value == state)
{
//通过带的code获取access_token和openid等信息
var cre = WeiXin.GetWebLoginAccessToken(code);
//通过access_token和openid获取微信用户的基本信息
var userInfo = WeiXin.GetWebUserInfo(cre.access_token, cre.openid, LangType.zh_CN);
}
}
其实简单上说就是四步:
1.组织参数访问二维码扫描页面
2.用户扫描并授权后微信服务器会返回到你设置好的回调页面带上code参数。
3.回调页面根据获取到的code去微信服务器get对应的接口,得到access_token和openid
4.通过获取到的access_token和openid在去微信服务器get对应接口就可以获取到微信用户的基本信息。
下面奉上源码以及demo例子。年费会员,或者以上才可以下载
WexinLogin.rar
(70.4 KB, 下载次数: 128)
|