ASP.net Core微信平台开发配置Token

如果先进行微信平台开发,配置Token是第一步。否则往后所有的代码都没办法在平台上跑得动。

但是官方给的源码是PHP的,ASP.net core 配置Token 的版本又少。研究怎么配置Token浪费了我超多时间。

首先登录开发者平台,点击开发者工具---》公众平台测试账号

然后就需要配置我们的接口信息了

先创建一个配置实体

 public class WeChatRequestModel
    {
        public string signature { get; set; }
        public string timestamp { get; set; }
        public string nonce { get; set; }
        public string echostr { get; set; }
    }

然后我们只需要在HomeController控制器上有一段代码就可以配置Token了

          /// <summary>
        /// 定义Token,与微信公共平台上的Token保持一致
        /// </summary>
 private const string Token = "StupidMe";
   public void Valid(WeChatRequestModel model)
        {
            //获取请求来的 echostr 参数
            string echoStr = model.echostr;
            //通过验证,出于安全考虑。(也可以跳过)
            if (CheckSignature(model))
            {
                if (!string.IsNullOrEmpty(echoStr))
                {
                    //将随机生成的 echostr 参数 原样输出
                    Response.WriteAsync(echoStr);
                    //截止输出流
                    //Response.end();
                }
            }
        }

但是出于安全考虑,弄了一个CheckSignature(model),进行验证(可以不用只是不安全)

/// <summary>
        /// 验证签名,检验是否是从微信服务器上发出的请求
        /// </summary>
        /// <param name="model">请求参数模型 Model</param>
        /// <returns>是否验证通过</returns>
        private bool CheckSignature(WeChatRequestModel model)
        {
            string signature, timestamp, nonce, tempStr;
            //获取请求来的参数
            signature = model.signature;
            timestamp = model.timestamp;
            nonce = model.nonce;
            //创建数组,将 Token, timestamp, nonce 三个参数加入数组
            string[] array = { Token, timestamp, nonce };
            //进行排序
            Array.Sort(array);
            //拼接为一个字符串
            tempStr = String.Join("", array);
            //对字符串进行 SHA1加密
            tempStr = Get_SHA1_Method2(tempStr);
            //判断signature 是否正确
            if (tempStr.Equals(signature))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

因为,signature是经过SHA1加密的,所以我们也要,进行一些SHA1加密才可以进行比较

 public string Get_SHA1_Method2(string strSource)
        {
            string strResult = "";
            //Create
            System.Security.Cryptography.SHA1 md5 = System.Security.Cryptography.SHA1.Create();
            //注意编码UTF8、UTF7、Unicode等的选择
            byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strSource));
            //字节类型的数组转换为字符串
            for (int i = 0; i < bytResult.Length; i++)
            {
                //16进制转换
                strResult = strResult + bytResult[i].ToString("X");
            }
            return strResult.ToLower();
        }

在我们的ASP.net Core写好代码以后,我们就发布了。注意,微信要求必须是80端口,且HTTP协议。

但是因为申请域名、服务器什么的麻烦,所以我就把自己电脑的防火墙关了,把项目发布到本机的IIS。然后在花生壳买了个域名,把自己的项目配上去就可以了(花了我18块,心疼)。

这样只,我们最基础的配置代码就完成了,然后把我们的Valid接口配过去就成功啦!!!!

(或许一开始会失败,因为验证比较慢,点多几次就成功了)

参考:https://www.jb51.net/article/246547.htm

以上就是ASP.net Core微信平台开发配置Token的详细内容,更多关于ASP.net Core微信配置Token的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解ASP.NET Core Web Api之JWT刷新Token

    前言 如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?见过一些使用JWT的童鞋会将JWT过期时间设置成很长,有的几个小时,有的一天,有的甚至一个月,这么做当然存在问题,如果被恶意获得访问令牌,那么可在整个生命周期中使用访问令牌,也就是说存在冒充用户身份,此时身份认证服务器当然也就是始终信任该冒牌访问令牌,若要使得冒牌访问令牌无效,唯一的方案则是修改密钥,但是如果我们这么做了,

  • ASP.NET Core集成微信登录

    工具: Visual Studio 2015 update 3 Asp.Net Core 1.0 1 准备工作 申请微信公众平台接口测试帐号,申请网址:(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login).申请接口测试号无需公众帐号,可以直接体验和测试公众平台所有高级接口. 1.1 配置接口信息 1.2 修改网页授权信息 点击"修改"后在弹出页面填入你的网站域名: 2 新建网站项目 2.1 选择ASP.NET C

  • asp.net微信开发(开发者接入)

    先上图,看一看需要进行哪些项目的操作: 在项目的根目录或者特定的文件夹内,创建一个ashx文件(一般处理程序文件),如图 public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string postString = string.Empty; if (HttpContext.Current.Request.HttpMethod.ToUpper() ==

  • .net core api接口JWT方式认证Token

    一.项目>管理Nuget包 安装 二..appsettings.json添加 "JWT": { "Secret": "~!@#$%^&*()_+qwertyuiopasldkh[o51485421ajshk^%*)kasd", // 密钥 "Issuer": "kfjdhf", // 颁发者 "Audience": "kfjdhf", // 接收者 //

  • ASP.net Core微信平台开发配置Token

    如果先进行微信平台开发,配置Token是第一步.否则往后所有的代码都没办法在平台上跑得动. 但是官方给的源码是PHP的,ASP.net core 配置Token 的版本又少.研究怎么配置Token浪费了我超多时间. 首先登录开发者平台,点击开发者工具--->公众平台测试账号 然后就需要配置我们的接口信息了 先创建一个配置实体 public class WeChatRequestModel { public string signature { get; set; } public string

  • asp.net core webapi 服务端配置跨域的实例

    在前后端分离开发中服务端仅仅只为前端提供api接口,并且前后端往往单独部署,此时就会出现浏览器跨域问题.asp.net core提供了简单优雅的解决方案. 在startup文件的Configure添加如下代码(替换"http://localhost:8080"为你的前端部署地址,此处测试的前端地址为本地的8080端口) 注:asp.net core2.0以下需安装nuget包:Microsoft.AspNetCore.Cors app.UseCors(builder => { b

  • asp.net core MVC之实现基于token的认证

    安装Nuget包 项目中添加包:dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer 添加认证配置 Startup类中添加如下配置: public void ConfigureServices(IServiceCollection services) { ... services.AddAuthentication(defaultScheme: JwtBearerDefaults.AuthenticationScheme

  • ASP.NET Core为Ocelot网关配置Swagger

    1.前言 前端与后端的联系更多是通过API接口对接,API文档变成了前后端开发人员联系的纽带,开始变得越来越重要,而Swagger就是一款让你更好的书写规范API文档的框架.在Ocelot Swagger项目示例中,通过APIGateway项目路由配置网关.上下游服务Swagger.对解决方案中的示例APIServiceA.APIServiceB项目Get方法进行配置,文件配置具体代码如下: { "Routes": [ { //下游服务地址 "DownstreamPathTe

  • ASP.Net Core基于ABP架构配置To Json序列化

    一. 前言 我们采用ABP架构用MVC Controller或Web API返回给前端结果ToJson序列化后得到的属性命名都是采用js的驼峰格式,即首字母小写,后面单词首字母大写的格式(如:后台属性名为OrderName,返回的前端js为orderName).但在实际项目开发中由于某种原因(比如给老系统提供接口或现有系统集成等)需要采用给后台属性名一致或自己特定的格式,下面就介绍一下基于ABP架构ToJson如何修改默认配置和自定义配置. 二. 修改ToJson序列化默认配置 在Startup

  • ASP.NET Core 实现自动刷新JWT Token

    目录 原理 实现 结论 前言: 为了安全性考虑,我们可以设置JWT Token较短的过期时间,但是这样会导致客户端频繁地跳到登录界面,用户体验不好. 正常解决办法是增加​​refresh_token​​,客户端使用refresh_token去主动刷新JWT Token. 这里介绍一种变通的方式,自动刷新JWT Token. 原理 我们读取每个请求的​​Authorization​​头,获得当前请求的JWT Token. 检查当前token的过期时间,如果在30分钟以内,那么我们就生成一个具有新过

  • asp.net core中灵活的配置方式详解

    前言 asp.net core支持外部文件和命令行参数方式来配置系统运行所需要的配置信息,我们从下面两个常用场景来具体说下具体使用方法. 一.监听地址及端口配置 1,命令行方式 asp.net core系统通过命令行方式启动,使用的命令如下: dotnet run 上面的命令直接在源代码目录下执行,便可以编译程序并运行.那对于已经发布好的程序,就不能使用上面的指令了,应该使用下面的指令: dotnet 程序集文件名(程序集文件名就是程序发布后生成的dll文件) 上面两个指令都能够启动应用程序.程

  • ASP.NET Core中的环境配置

    1.环境变量配置 ASP.NET Core在应用程序启动时读取环境变量(Properties\launchSettings.json)ASPNETCORE_ENVIRONMENT,并将该值存储在IHostingEnvironment.EnvironmentName中.ASPNETCORE_ENVIRONMENT可设置为任意值,但框架只支持三个值:Development(开发).Staging (分阶段)和 Production(生产).如果未设置ASPNETCORE_ENVIRONMENT,则默

  • ASP.NET Core中的Configuration配置一

    相关文章 ASP.NET Core2.2 中的Configuration配置一 ASP.NET Core2.2 中的Configuration配置二 1.前言 ASP.NET Core在应用程序上引入Microsoft.Extensions.Configuration配置,可以支持多种方式配置,包括命令行配置.环境变量配置.文件配置.内存配置,自定义配置等等.下面我们就其中几个配置来聊聊. 2.命令行配置 CommandLineConfigurationProvider在应用程序运行时会从(例如

  • ASP.NET Core中的Configuration配置一

    目录 1.前言 2.命令行配置 3.文件配置 3.1 INI配置 3.2 JSON配置 3.2.1GetSection.GetChildren和Exists 3.3 XML配置 相关文章 ASP.NET Core2.2 中的Configuration配置一 ASP.NET Core2.2 中的Configuration配置二 1.前言 ASP.NET Core在应用程序上引入Microsoft.Extensions.Configuration配置,可以支持多种方式配置,包括命令行配置.环境变量配

随机推荐