热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.netcore实现微信登陆

publicconststringappId;申请的微信给的appIdpublicconststringappSecret;申请的微信给的appsecretpublicco

public const string appId = "";//申请的微信给的appIdpublic const string appSecret = "";//申请的微信给的appsecretpublic const string redirecturl = "";//申请的微信的回调地址#region 微信登陆///

/// 微信授权页面/// /// public virtual IActionResult WechatAuthorize(){var url &#61; $"https://open.weixin.qq.com/connect/qrconnect?appid&#61;{appId}&redirect_uri&#61;{redirecturl}&response_type&#61;code&scope&#61;snsapi_login&state&#61;STATE#wechat_redirect";return new RedirectResult(url);}/// /// 微信回调方法/// /// public virtual IActionResult WechatLogin(){var code &#61; Request.Query["code"];var dis &#61; GetAuthorityWechatAccessToken(code);if (!dis.ContainsKey("openid") || !dis.ContainsKey("access_token"))return null;var userinfo &#61; GetWechatUserInfo(dis["access_token"], dis["openid"]);return null;}/// /// 微信比QQ在获取Token的时候返回了OpenId和UnionId。/// /// /// public virtual Dictionary<string,string> GetAuthorityWechatAccessToken(string code){if (string.IsNullOrEmpty(code))return null;var url &#61;string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid&#61;{0}&secret&#61;{1}&code&#61;{2}&grant_type&#61;authorization_code",appId, appSecret, code);HttpWebRequest request &#61; WebRequest.Create(url) as HttpWebRequest;var json &#61; WebRequestHelper.GetResponse(request, "utf-8");if (string.IsNullOrEmpty(json))return null;if (!json.Contains("access_token")){return null;}var dis &#61; json.DeserializeJsonstring, string>>();return dis;}/// /// 获取微信用户信息/// /// /// /// public virtual Dictionary<string,object>GetWechatUserInfo(string token,string openid){var url &#61; $"https://api.weixin.qq.com/sns/userinfo?access_token&#61;{token}&openid&#61;{openid}";HttpWebRequest request &#61; WebRequest.Create(url) as HttpWebRequest;var json &#61; WebRequestHelper.GetResponse(request, "utf-8");var dis &#61; json.DeserializeJsonstring, object>>();if (dis &#61;&#61; null || dis.ContainsKey("errcode"))return null;return dis;}#endregion
View Code

//请求接口方法
public static string GetResponse(WebRequest request, string encoding){using (WebResponse response &#61; request.GetResponse()){var stream &#61; response.GetResponseStream();if (stream &#61;&#61; null) return null;using (var reader &#61; new StreamReader(stream, Encoding.GetEncoding(encoding))){return reader.ReadToEnd();}}}

View Code

这个没有测试登陆&#xff0c;因为看文档和QQ登陆大同小异&#xff0c;连代码都是差不多的。所以就没有测试了。

望参考的游客&#xff0c;还仅供参考。

转:https://www.cnblogs.com/CnnBlog/p/11451374.html



推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • 本文将详细介绍小蚁智能行车记录仪的各项性能,包括其1296P高清分辨率的实际表现及ADAS辅助驾驶系统的功能测试。通过白天、夜晚及低光环境下的视频测试,全面评估这款设备的实用性。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文将详细介绍如何使用Markdown来创建流程图,包括定义元素、连接元素以及构建完整的流程图实例,如Web服务API请求流程图和网页登录流程图。 ... [详细]
author-avatar
mobiledu2502898533
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有