一、注册账号

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

二、公众平台测试账号

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

不过可以点击这里调转。

点击这里进入

三、进入公众平台。

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

上面的接口配置信息是给接口服务器端使用,下面的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. 昨天还在for循环里写加号拼接字符串的那个同事,今天已经不在了

    引言 都说 StringBuilder 在处理字符串拼接上效率要强于 String,但有时候我们的理解可能会存在一定的偏差.最近我在测试数据导入效率的时候就发现我以前对 StringBuilder 的 ...

  2. Hive使用Calcite CBO优化流程及SQL优化实战

    目录 Hive SQL执行流程 Hive debug简单介绍 Hive SQL执行流程 Hive 使用Calcite优化 Hive Calcite优化流程 Hive Calcite使用细则 Hive向 ...

  3. MGRE及实验

    tunnel 隧道:一种的简单的VPN技术: 普通的tunnel为点到点网络类型: 生成隧道接口,流量通过路由查询后,若通过隧道接口转发时,需要在原有的三层报头前,再添加一个公有地址间的报头: 将两个 ...

  4. Linux里面的压缩和解压类指令

    gzip/gunzip 指令 ( .gz  不能压缩目录) gzip 用于压缩文件, gunzip 用于解压的 . gzip gzip命令用来压缩文件.gzip是个使用广泛的压缩程序,文件经它压缩过后 ...

  5. 万字长文 | 23 个问题 TCP 疑难杂症全解析

    每个时代,都不会亏待会学习的人. 在进入今天主题之前我先抛几个问题,这篇文章一共提出 23 个问题. TCP 握手一定是三次?TCP 挥手一定是四次? 为什么要有快速重传,超时重传不够用?为什么要有 ...

  6. vant实现下拉多选组件

    1.最近需要做一个移动端多选的功能,发现vant上没有多选的下拉组件,于是决定写一个,样式如下 调用部分传入值 propsselect-data-opts 传入list数据, disabled 下拉是 ...

  7. mysql-13-auto_increment

    # 标识列 /* 自增长列 可以不用手动的插入值,系统提供默认的序列值 1.标识列必须和 key 搭配使用,比如主键.唯一键.外键 2.一个表至多一个标识列 3.标识列的类型只能是数值型 4.标识列可 ...

  8. 烽火服务器IPMI远程装机

    连接控制台 一.通过vpn拨入进入内网,使用IE浏览器或者火狐等等,连接ilo地址.(需要安装java8.0,各个品牌的服务器需要的不一样) 二.启动虚拟连接控制台,进行控制主机 三.根据截图进行操作 ...

  9. CF471D MUH and Cube Walls

    Link 一句话题意: 给两堵墙.问 \(a\) 墙中与 \(b\) 墙顶部形状相同的区间有多少个. 这生草翻译不想多说了. 我们先来转化一下问题.对于一堵墙他的向下延伸的高度,我们是不用管的. 我们 ...

  10. 题解【[USACO18FEB]New Barns 】

    浅谈一下对于这题做完之后的感受(不看题解也是敲不出来啊qwq--) 题意翻译 Farmer John注意到他的奶牛们如果被关得太紧就容易吵架,所以他想开放一些新的牛棚来分散她们. 每当FJ建造一个新牛 ...