一、注册账号

百度微信公众平台,点击进入。

二、公众平台测试账号

点击进入平台后居然是小程序,我也很费解。以前是找到开发->开发者工具->公众平台测试账号,现在毛都没有了。

不过可以点击这里调转。

点击这里进入

三、进入公众平台。

这里好像要微信扫码登录。

上面的接口配置信息是给接口服务器端使用,下面的JS接口安全域名是给前端调用。

这里的坑还是多,而且官方文档含糊其辞,这点差评。

首先就是为何要有这个域名。说的直白一点,就是你要想和微信第三方接口通讯,必须要有一个能被外网访问的接口暴露出去供第三方调用。所以你需要有一个服务器和域名。

这里需要注意:

1、服务器随便搞。我的是阿里云的云服务器。

2、域名,这里必须要用域名,不然会配置失败。

3、必须是http的80端口或者https的443默认端口。

4、URL的方法是GET请求,方法名随意。

5、必须把服务器ip添加到白名单。

添加到白名单在微信公众平台添加。

四、现在来测试一下。

js同样的这样就可以了。

五、微信在线测试接口

https://mp.weixin.qq.com/debug

六、代码

6.1、接口方法

 1 /// <summary>
2 /// 检测接口
3 /// 作用:在注册微信公众号的测试号管理界面,提供接口配置信息。接收微信接入验证请求,并给与响应。
4 /// </summary>
5 /// <param name="signature">微信加密签名</param>
6 /// <param name="timestamp">时间戳</param>
7 /// <param name="nonce">随机数</param>
8 /// <param name="echostr">随机字符串</param>
9 /// <returns></returns>
10 [HttpGet("CheckWeChat")]
11 public string CheckWeChat(string signature, string timestamp, string nonce, string echostr)
12 {
13 log.Debug("微信端成功请求到接口!");
14 log.Debug($"signature:{signature},timestamp:{timestamp},nonce:{nonce},echostr:{echostr}");
15
16 if (!string.IsNullOrWhiteSpace(signature) && !string.IsNullOrWhiteSpace(timestamp) && !string.IsNullOrWhiteSpace(nonce) && !string.IsNullOrWhiteSpace(echostr))
17 {
18 log.Debug("进入验证内部");
19
20 //读取配置Token,需要和你填写的一样
21 var token = JsonFileHelper.Read("WeChat_TestToken");
22
23 if (!string.IsNullOrWhiteSpace(token) && WeChatHelper.VerificationSignature(echostr, nonce, signature, timestamp, token))
24 {
25 log.Debug("成功!");
26 //如果调用成功,返回随机字符串
27 return echostr;
28 }
29 }
30 return "false";
31 }

6.2、帮助类

 1 public static string GetSha1Hash(string str)
2 {
3 var inputBytes = Encoding.Default.GetBytes(str);
4
5 SHA1 sha = new SHA1CryptoServiceProvider();
6
7 var result = sha.ComputeHash(inputBytes);
8
9 var sBuilder = new StringBuilder();
10
11 for (var i = 0; i < result.Length; i++)
12 {
13 sBuilder.Append(result[i].ToString("x2"));
14 }
15
16 return sBuilder.ToString();
17 }

 1 /// <summary>
2 /// 签名验证
3 /// </summary>
4 /// <param name="echostr">随机字符串</param>
5 /// <param name="nonce">随机数</param>
6 /// <param name="signature">微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。</param>
7 /// <param name="timestamp">时间戳</param>
8 /// <param name="token">用户签名</param>
9 /// <returns></returns>
10 public static bool VerificationSignature(string echostr, string nonce, string signature, string timestamp,string token)
11 {
12 string[] StrArray = { token, timestamp, nonce };
13 Array.Sort(StrArray);
14 var ArrayString = new StringBuilder();
15 for (var i = 0; i < StrArray.Length; i++)
16 ArrayString.Append(StrArray[i]);
17 var strHash = GetSha1Hash(ArrayString.ToString());
18 return signature == strHash;
19 }

6.3、截图

七、远程服务器代码发布

想要源码的可以联系我。希望对大家有帮助。

ASP.NET CORE 开发微信公众号(一、测试号管理)的更多相关文章

  1. spring-boot-route(二十三)开发微信公众号

    在讲微信公众号开发之前,先来大概了解一下微信公众号.微信公众号大体上可以分为服务号和订阅号,订阅号和服务号的区别如下: 服务号可以申请微信支付功能. 服务号只能由企业申请,订阅号可以有企业或个人申请. ...

  2. Java开发微信公众号(五)---微信开发中如何获取access_token以及缓存access_token

    获取access_token是微信api最重要的一个部分,因为调用其他api很多都需要用到access_token.比如自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等在请求的时候 ...

  3. Java开发微信公众号(三)---微信服务器请求消息,响应消息,事件消息以及工具处理类的封装

    在前面几篇文章我们讲了微信公众号环境的配置 和微信公众号服务的接入,接下来我们来说一下微信服务器请求消息,响应消息以及事件消息的相关内容,首先我们来分析一下消息类型和返回xml格式及实体类的封装. ( ...

  4. 小机器人自动回复(python,可扩展开发微信公众号的小机器人)

    api来之图灵机器人.我们都知道微信公众号可以有自动回复,我们先用python脚本编写一个简单的自动回复的脚本,利用图灵机器人的api. http://www.tuling123.com/help/h ...

  5. vue+node.js+webpack开发微信公众号功能填坑——v -for循环

    页面整体框架实现,实现小功能,循环出数据,整体代码是上一篇 vue+node.js+webpack开发微信公众号功能填坑--组件按需引入 修改部门代码 app.vue <yd-flexbox&g ...

  6. vue+node.js+webpack开发微信公众号功能填坑——组件按需引入

    初次开发微信公众号,整体框架是经理搭建,小喽喽只是实现部分功能,整体页面效果 整个页面使用两个组件:布局 FlexBox,搜索框 Search,demo文档 http://vue.ydui.org/d ...

  7. PHP开发微信公众号

    PHP开发微信公众号:配置和部署服务器及Token认证 https://zhuanlan.zhihu.com/p/28259840

  8. 使用vue开发微信公众号下SPA站点的填坑之旅

    原文发表于本人博客,点击进入使用vue开发微信公众号下SPA站点的填坑之旅 本文为我创业过程中,开发项目的填坑之旅.作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱^ ...

  9. PHP开发微信公众号(一)二维码的获取

    要开发微信公众号,首先进行需要注册一个,然后认证.这就不用多说了. 当然如果没有,也可以去申请一个测试号来使用,地址:https://mp.weixin.qq.com/debug/cgi-bin/sa ...

随机推荐

  1. Sqlmap爆库命令的简单使用

    转载:https://blog.csdn.net/qq_41617034/article/details/89502428 测试地址:因为涉及商业隐私,这里就不列啦 我这里用的是windows,并没有 ...

  2. 记一次由selinux引起的使用cat查看文件报错Permission denied的问题排查

    事件起因:如下 1.在服务器上root用户,定期会生成一个文件,到/tmp目录,如:qq_5201351.txt,给other加上了r读取 2.zabbix端会周期性取这台服务器/tmp/qq_520 ...

  3. PyCharm专业版编辑器安装(含破解步骤)

    一.首先下载好安装包: 二.安装步骤: 1.双击安装包,打开安装界面,点击"next": 2.选择安装路径,点击"next": 3.电脑是64位的就勾选64-b ...

  4. Apollo系列(一):分布式配置中心Apollo安装(Linux、Docker)

    一.介绍 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理 ...

  5. 简单渗透测试流程演示(445端口、IPC$、灰鸽子)

    目录 一.实验流程 二.实验过程 2.1 信息收集 2.2 利用过程 2.3 暴力破解系统密码之445 2.4 通过木马留后门 一.实验流程 0.授权(对方同意被渗透测试才是合法的.)1.信息收集  ...

  6. 对Elasticsearch生命周期的思考

    什么是es索引的生命周期?有啥用?可以怎么用?用了有什么好处呢? 在现实的生产环境中有没有觉得自己刚开始设计的索引的分片数刚刚好,但是随着时间的增长,数据量增大,增长速度增大的情况下,你的es索引的设 ...

  7. mysql-9-limit

    #进阶9:分页查询 /* 当要显示的数据,一页显示不全,需要分页提交sql请求 SELECT FROM JOIN ON WHERE GROUP BY HAVING ORDER BY LIMIT off ...

  8. Java知识系统回顾整理01基础04操作符04位操作符

    一.位操作符 位操作符在实际工作中用的并不常见,但是我比较纠结这些位操作.所以实际练习位操作符的每一个操作符的操作实例来理解其具体含义. 建议: 如果确实感兴趣,就看看,个人建议跳过这个章节. 真正工 ...

  9. python基础-面向对象opp

    上述是实例化对象的一个过程. 类的定义和实例化: class Role(object): #定义一个类, class是定义类的语法,Role是类名,(object)是新式类的写法,必须这样写,以后再讲 ...

  10. 使用MVC 5、Web API 2、KnockoutJS、Ninject和NUnit开发、架构和测试Web应用程序

    做一名微软软件开发人员就像在国际煎饼屋订早餐一样.每道菜都有一堆煎饼,你必须从各种各样的煎饼和糖浆口味中选择.对于web应用程序,解决方案堆栈是一组软件子系统或组件,用于交付功能完整的解决方案(无论是 ...