想学习微信公众号,却没有认证的公众号是初学者的一大拦路虎。不过微信体贴我为我们准备了测试号。
1、进入开发测试号页面
微信公众号-->开发-->开发者工具-->公众平台测试账号
2、配置测试号
appID、appsecret已经给出我们只需要配置接口配置信息
URL:我们服务器域名或地址
Token:3-22位英文或数字即可
开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:
参数 | 描述 |
signature | 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp | 时间戳 |
nonce | 随机数 |
echostr | 随机字符串 |
我们的应用程序需要返回nonce参数响应该请求视为配置成功。但是问题来了,我们现在只是学习和测试,是在自己的电脑上面URL自然就是我们的IP地址,但是我们的IP是局域网,外面是没办法访问的。提交时就会提示“配置错误”
这里有两种解决办法
第一种:穿透内网
使用内网穿透工具使得外网可以访问到我们的电脑
常用的工具有:ngrok、花生壳等,这里简单讲下ngrok 的使用
第一步、下载客户端
链接: https://pan.baidu.com/s/1pVoZk6bqad0oq2p9rT109g 提取码: 0i42
建议下载的时候最好把文件放在一个比较容易找的地方,如果是我,我会更改一下文件名,而且是英文的。
第二步、解压到相应文件夹
建议直接解压到常用目录,这样你就可以直接cd 进入这个客户端文件夹了 。
第三步、(补充)想好你的唯一域名
我还是想提醒一下,确保你的域名前缀唯一,这里的方式有很多,比如你的qq或者你的手机号码,甚至你的微信号,这可以对你的项目起到一定的保护作用。
第四步、进入刚才的解压目录
执行
ngrok -config=ngrok.cfg -subdomain xxx 80 //(xxx 是你自定义的域名前缀)。
例如:ngrok -config=ngrok.cfg -subdomain MyTest 80
如果 ngrok穿透失败,可以下载花生壳进行穿透,这里就不做介绍。
第二种:外网服务器部署请求接受响应程序
当内网穿透失败的情况下还有一种办法,那就是把接收响应请求的程序挂到云服务器上,配置成功后其他测试功能就可以再本机完成了。前提就是我们需要有一台可以访问的云服务器。
响应请求程序
public ActionResult Index(string signature, string nonce, string echostr, string timestamp)
{
return Content(echostr);
//return View();
}
我这是基于ASP.Net MVC 搭建的,HomeController下的Index方法接收四个参数,并返回echostr参数。部署到服务器的80端口后,我们点击提交配置时,微信服务器将发送GET请求Index方法得到响应的echostr匹配后即配置成功