一、注册账号

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

二、公众平台测试账号

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

不过可以点击这里调转。

点击这里进入

三、进入公众平台。

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

上面的接口配置信息是给接口服务器端使用,下面的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. three.js学习4_光源

    Three.Light 首先展示的是使用半球光引用的效果, 光源直接放置于场景之上,光照颜色从天空光线颜色颜色渐变到地面光线颜色.光照主要有 AmbientLight 环境光 DirectionalL ...

  2. shiro 退出过滤器 logout ---退出清除HTTPSession数据

    重写LogouFilter类 import org.apache.shiro.web.filter.authc.LogoutFilter; public class ShiroLogoutFilter ...

  3. 如何使用 C# 中的 ValueTask

    在 C# 中利用 ValueTask 避免从异步方法返回 Task 对象时分配 翻译自 Joydip Kanjilal 2020年7月6日 的文章 <How to use ValueTask i ...

  4. 谷歌发布Flutter Alpha:支持Windows

    老孟导读:Windows来了,Mac.Linux.Web还远吗? 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33 ...

  5. Python练习题 036:Project Euler 008:1000位数字中相邻13个数字最大的乘积

    本题来自 Project Euler 第8题:https://projecteuler.net/problem=8 # Project Euler: Problem 8: Largest produc ...

  6. 引用类型之Array(一)

    Array类型 除了Object之外,Array类型在ECMAScript中也很常用.ECMAScript中的数组与其他多数语言中的数组有着相当大的区别.ECMAScript数组的每一项可以保存任何类 ...

  7. <stdbool.h>的使用

    转载: 1.https://www.cnblogs.com/jediael/archive/2013/02/03/4304259.html 2.https://zhidao.baidu.com/que ...

  8. TCP/IP 邮件

    原文:TCP/IP 邮件 第一节:TCP/IP 简介 第二节:TCP/IP 寻址 第三节:TCP/IP 协议 第四节:TCP/IP 邮件 电子邮件是 TCP/IP 最重要的应用之一. 你不会用到... ...

  9. Allegro PCB 转 PADS Layout 之后的修修补补

    操作系统:Windows 10 x64 工具:PADS Layout VX.2.3 参考:Allegro转PADS以及后续修改 我们可以看到转换后的PCB文件,乱糟糟的,所以还需要我们手动修改一下. ...

  10. .net网站自动化部署-致两年前的遗留的问题

    又到一年国庆,终于有了难得的几天空闲,计划陪陪媳妇娃子,再把最近阅读的几本相关书总结梳理下.当然,计划总是美好的,于时接到了一个老朋友电话.大意是他搞了一个.net小网站,部署了4个节点,每次更新程序 ...