苏飞论坛广告位

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

分布式系统框架(V1.3) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程 - 订阅更新

HttpHelper万能框架(V2.2) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V1.9) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5268|回复: 1

[asp.net] 微信登录第三方网站SDK(C#)和例子

[复制链接]
  • TA的每日心情
    擦汗
    2016-11-7 08:56
  • 签到天数: 51 天

    [LV.5]常住居民I

    发表于 2015-11-5 13:06:15 | 显示全部楼层 |阅读模式
    最近做了一个微信登录网站的项目,按照微信开放平台写了一个微信登录的sdk和对应使用的一个例子。
    其实微信登录的流程很简单,需要在开发者平台上注册一个账号,进入后台管理后需要自己添加一个网站应用,添加网站应用成功后会得到AppID和AppSecret,这两个值在接下来的编程中会用到。
    按照开发文档里的请求步骤笔者已经开发好对应的sdk,实测可用。下面讲下简单的用法,最后会将源码传上。
    源码预览图:

    QQ截图20151105130812.png
    首先需要你在你的网站应用程序下的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, 下载次数: 113)

    本帖被以下淘专辑推荐:

  • TA的每日心情
    开心
    昨天 15:56
  • 签到天数: 601 天

    [LV.9]以坛为家II

    发表于 2015-11-5 13:16:59 | 显示全部楼层
    您需要登录后才可以回帖 登录 | 马上注册

    本版积分规则

    QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备17001017号-1 )

    GMT+8, 2018-10-16 06:00

    © 2017-2018

    快速回复 返回顶部 返回列表