第7章 通过内网本机IP获取微信code值及其对code值的回调。

news2024/11/25 18:33:51

在第5章中讲述了怎样通过内网穿透外外网从而获取微信code值,实际上微信测试帐号管理页中也支持通过内网本机IP获取微信code值。

1 重构launchSettings.json

   "https": {

      "commandName": "Project",

      "dotnetRunMessages": true,

      "launchBrowser": true,

      "launchUrl": "swagger",

      //"applicationUrl": "https://localhost:7156;http://localhost:5006",

      "applicationUrl": "https://192.168.2.230:7156",

      "environmentVariables": {

        "ASPNETCORE_ENVIRONMENT": "Development"

      }

    },

2 WeChatGetCode.Controllers.HomeController.GetUrlToWechatAuthorizationCode

    [HttpGet]

        // [Route("/api/[controller]/123.aspx")]

        public IActionResult GetUrlToWechatAuthorizationCode()

        {

            var Scope = "snsapi_base";

            var State = "123";

            var url = $"https://open.weixin.qq.com/connect/oauth2/authorize?appid={AppId}&redirect_uri={"https://192.168.2.230:7156/WebChat/GetWechatAuthorizationCode"}&response_type=code&scope={Scope}&state={State}#wechat_redirect";

            return Redirect(url);

        }

3 重构 WeChatGetCode.Controllers.HomeController. GetWechatAuthorizationCode

/// <param name="code">从微信浏览器中获取的code值,注意该参数名必须为“code”如果使用本机IP进行从微信中获取code值时,如果该参数名不为“code”会出错。</param>

        /// <summary>

        /// 【使用微信进行登录时获取微信提供的授权认证信息】

        /// <remarks>

        /// 摘要:

        ///     当前程序使用使用微信进行身份认证后进行授权登录时,获取微信提供的授权认证信息。

        /// </remarks>

        /// <returns>

        /// 返回:

        ///     微信授权认证信息模型实例。

        /// </returns>

        /// </summary>

        [HttpGet]

        public WechatAuthorizationCodeModel GetWechatAuthorizationCode(string code)

        {

            var url = $"https://api.weixin.qq.com/sns/oauth2/access_token?appid={AppId}&secret={AppSecret}&code={code}&grant_type=authorization_code";

            var httpClient = new HttpClient();

            var result = httpClient.GetStringAsync(url).Result;

            //return JsonSerializer.Deserialize<WechatAccessTokenModel>(result)!.openid;

            return JsonSerializer.Deserialize<WechatAuthorizationCodeModel>(result)!;

        }

4 修改回调页面为内网IP

对以上功能更为具体实现和注释见:230810_007WeChatWebApi(通过内网本机IP获取微信code值及其对code值的回调)。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/859293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录—力扣算法题:59螺旋矩阵II.Java版(示例代码与导图详解)

版本说明 当前版本号[20230810]。 版本修改说明20230810初版 目录 文章目录 版本说明目录59.螺旋矩阵II思路左闭右开方法左闭右闭方法两种方法的区别总结 59.螺旋矩阵II 力扣题目链接 更多内容可点击此处跳转到代码随想录&#xff0c;看原版文件 给定一个正整数 n&#xf…

BDA初级分析——数据收集、清洗和整理

一、认识数据 什么是数据&#xff1f; 数据是对客观世界的记录&#xff0c;用来记载事物的性质、状态、相互关系等。 有哪些常见的数据类型&#xff1f; 什么是数据集&#xff1f; 数据集&#xff1a;数据的集合&#xff0c;通常以表格形式出现。 二、收集数据 我们都会从哪里…

优思学院|6sigma合格率计算公式

概述 在现代竞争激烈的商业环境中&#xff0c;质量控制对于制造业和服务业都至关重要。其中&#xff0c;一个强大的方法是采用6sigma&#xff08;也称为6σ&#xff09;方法来提高质量和降低缺陷率。本文将深入探讨6sigma合格率计算公式&#xff0c;解释其在质量管理中的应用&…

20款奔驰C260 L(W206)更换内饰最全发光套件,提升车内氛围

原厂1:1设计&#xff0c;免编程匹配&#xff0c;无损安装&#xff0c;可升级项目&#xff1a; 1、碳纤维中控氛围灯&#xff08;阿凡达水滴款&#xff09; 2、发光前风口&#xff1b; 3、发光后风口&#xff1b; 4、发光座椅背气氛灯&#xff1b; 5、中音发光盖板 6、主动…

企业有VR全景拍摄的需求吗?能带来哪些好处?

在传统图文和平面视频逐渐疲软的当下&#xff0c;企业商家如何做才能让远在千里之外的客户更深入、更直接的详细了解企业品牌和实力呢&#xff1f;千篇一律的纸质材料已经过时了&#xff0c;即使制作的再精美&#xff0c;大家也会审美疲劳&#xff1b;但是你让客户远隔千里&…

网络编程基础:Linux网络I/O模型、JavaI/O模型、Netty

文章目录 一、Linux网络I/O模型简介0.文件描述符和系统调用1. 阻塞I/O模型2. 非阻塞I/O模型&#xff08;轮询&#xff09;3. I/O复用模型&#xff08;轮询、事件驱动&#xff09; 二、Java的I/O演进1.BIO&#xff08;阻塞&#xff09;&#xff08;1&#xff09;套接字&#xff…

安达发|疫情影响下的APS排程可以给制造业解决哪些问题

随着市场需求的不断变化&#xff0c;特别是对柔性、小单量多批次的需求日益增长&#xff0c;再加上疫情的影响&#xff0c;企业随时可能面临延期交货的风险。这使得行业供应链管理的复杂性不断加剧&#xff0c;企业对于生产管理高效性的需求也日益显著。 同时&#xff0c;我们…

vm workstation pro安装centos7

官网下载vm workstation pro&#xff0c;参考上一篇文章&#xff1a;https://editor.csdn.net/md/?articleId132208423安装centos7 官网下载的vm&#xff0c;是有一个镜像iso文件的 完成后稍等&#xff1a; 这一步很重要&#xff0c;别急着点开始安装&#xff0c;看到有感叹…

.NET 8 Preview 6 中推出 .NET MAUI: 欢迎使用 VS Code 和 VS for Mac

作者&#xff1a;David Ortinau 排版&#xff1a;Alan Wang .NET 8 Preview 6 推出了.NET MAUI&#xff0c;同时修复了 23 个关键问题&#xff0c;并引入了适用于 iOS 的 Native AOT。此外&#xff0c;您现在可以在 .NET 8 中使用 .NET MAUI&#xff0c;只要安装 Visual Studio…

excel将主信息和明细信息整理为多对多(每隔几行空白如何填充)

excel导出的数据是主信息和明细信息形式。 原始数据图&#xff1a; 最终效果:

UML之四种事物

目录 结构事物 行为事物 分组事物&#xff1a; 注释事物 结构事物 1.类(Class) -类是对一组具有相同属性、方法、关系和语义的对象的描述。一个类实现一个或多个接口 2.接口(interface) -接口描述 了一个类或构件的一个服务的操作集。接口仅仅是定义了一组操作的规范&…

23、springboot日志使用入门-- SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

springboot日志使用入门 ★ 典型的Spring Boot日志依赖&#xff1a; spring-boot-start.jar -- spring-boot-starter-logging.jar (Spring Boot的日志包&#xff09;-- logback&#xff08;core、classic&#xff09;-- log4j-to-slf4j.jar-- jul-to-slf4j.jar就是springboo…

【el-upload】批量上传图片时在before-upload中添加弹窗判断时的踩坑记录

一、初始代码 1. 初始使用组件代码片段 <!-- 上传 --> <DialogUploadFile ref"uploadFile" success"refresh" />// 上传 const uploadHandle () > {if (selections.value.length ! 1) {onceMessage.warning(请选择一条数据操作)return}u…

并行FIR滤波器

FIR 滤波器原理 FIR 滤波器是有限长单位冲击响应滤波器&#xff0c;又称为非递归型滤波器。FIR 滤波器具有严格的线性相频特性&#xff0c;同时其单位响应是有限长的&#xff0c;因而是稳定的系统。 FIR 滤波器本质上就是输入信号与单位冲击响应函数的卷积&#xff0c;表达式…

MapBox加载不同风格

初始化MapBox地图&#xff1a; var map new mapboxgl.Map({container: map,zoom: 3,center: [105, 34],//此处更改地图风格style: mapbox://styles/mapbox/satellite-v9,hash: false,});1.户外地图&#xff08;mapbox://styles/mapbox/basic-v9&#xff09;新版&#xff1a;&a…

python——案例15:判断奇数还是偶数

案例15&#xff1a;判断奇数还是偶数numint(input(输入数值&#xff1a;))if(num%2)0: #通过if语句判断print("{0}是偶数".format(num))else: #通过else语句判断print("{0}是奇数".format(num))

Linux Linux基础命令

1.pwd——显示当前位置的绝对路径 2.cd——切换目录&#xff0c;cd 后的参数表示要切换到的位置 &#xff08;1&#xff09;cd后面的参数为绝对路径&#xff1a; &#xff08;2&#xff09;cd后面的参数为相对路径&#xff1a; &#xff08;3&#xff09;cd ~回到家目录&#…

Ansys Lumerical | 针对多模干涉耦合器的仿真设计与优化

说明 本示例演示通过12端口多模干涉(MMI)耦合器计算宽带传输和光损耗&#xff0c;并使用S参数在 INTERCONNECT 中创建 MMI 的紧凑模型。(联系我们获取文章附件) 综述 低损耗光耦合器和光分路器是基于 Mach-Zehnder 的光调制器的基本组件&#xff0c;是集成电路的关键组成部分。…

数据结构——双向链表

双向链表实质上是在单向链表的基础上加上了一个指针指向后面地址 单向链表请参考http://t.csdn.cn/3Gxk9 物理结构 首先我们看一下两种链表的物理结构 我们可以看到&#xff1a;双向在单向基础上加入了一个指向上一个地址的指针&#xff0c;如此操作我们便可以向数组一样操作…

【Android NDK开发】Android Studio 编写 JNI (C++)代码无提示

随笔记 Android Studio在编写C代码时候&#xff0c;引入对应的头文件&#xff0c;Android Studio里却不提示对应的方法&#xff0c;需要在Studio中设置一下。 Mac中&#xff0c;选择 Android Studio > Preferences&#xff0c;选择Clangd >>Disable Clangd completio…