1.第一步:申请测试号
地址:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
在这声明一下为什么用测试号,因为这个东西作者还踩了坑,总体而言东西不难,主要是入门比较繁杂。
使用测试号的原因:
1.申请订阅号,如果申请的是账号主体为个人,大部分接口不能使用
2.如果账号主体为企业,那就要申请一堆东西,还要付钱,还是使用测试号舒服。
这就是申请之后的测试号,只不过接口配置信息需要根据自己的情况填写:(又是坑…)
先前用pm2将代码运行在远程主机上,发现要一直改代码比较麻烦,解决办法:
百度之后利用netapp将内网ip映射到外网,使微信公众号的开发直接就可以在本地调试。
2.netapp使用方法
直接去到官网,链接:https://natapp.cn/
具体使用情况直接参照图文教程,很详细。
配置完成后,复制你的token:
双击netapp.exe执行以下命令:
natapp -authtoken=yourtoken
显示这样,内网ip就映射成功了:
3.配置公众号接口信息
4.编写后台代码
访问根目录对其进行一个配置,此处利用到了express中间价:
新建一个config目录,目录中新建config.json文件:
{
"wechat" : {
"appID": "wx3a5048024725b",
"appSecret": "33ebc98b3ec02bd8e4bed153c",
"token": "dsg603"
}
}
index.js文件中写入:
var express = require('express');
var router = express.Router();
var sha1 = require('sha1');
var config = require("../config/config.json");
router.get('/', function (req, res, next) {
//1.获取微信服务器Get请求的参数 signature、timestamp、nonce、echostr
var signature = req.query.signature,//微信加密签名
timestamp = req.query.timestamp,//时间戳
nonce = req.query.nonce,//随机数
echostr = req.query.echostr;//随机字符串
//2.将token、timestamp、nonce三个参数进行字典序排序
var array = [config.wechat.token, timestamp, nonce];
array.sort();
//3.将三个参数字符串拼接成一个字符串进行sha1加密
var tempStr = array.join('');
var resultCode = sha1(tempStr); //对传入的字符串进行加密
//4.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
if (resultCode === signature) {
res.send(echostr);
} else {
res.send('mismatch');
}
});
module.exports = router;
到这里就配置完成了,看下效果:
在这里告诫大家多看文档,多上手操作。踩坑踩到哭,后面的坑慢慢踩。。。!!