1) 接口测试号申请
微信公众平台=>开发=>基本配置
2) 接口信息配置
(1) 必须得有一个域名,可以使用SSH穿透
ssh -vnNt -R 7788:localhost:3333 root@39.106.4.9
②nginx的配置
upstream tunnel {
server 127.0.0.1:7788;
}
upstream tunnel2 {
server 127.0.0.1:7789;
}
server {
listen 80;
server_name jiaxinmxx.top;
location /jiaxin{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://tunnel2; //跳转到tunnel2
}
location / {
proxy_pass http://tunnel;
}
}
(2) 验证消息来自于微信服务器
在开发具体的功能之前,需要先进行token验证,验证消息来自于微信服务器,验证方法是提交接口信息配置时,微信服务器会发送一个get请求到我们的服务器上,get请求携带signature, timestamp, nonce, echostr参数。通过检验signature对请求进行校验。若确认此次get请求来自微信服务器,就原样返回echostr参数内容。
校验流程:
将token、timestamp、nonce三个参数进行字典序排序
将三个参数字符串拼接成一个字符串进行sha1加密 (使用node自带的(crypto)加密)
将加密后的字符串与signature对比,相等则表示请求来自于微信服务器
将 echostr 返回
(3) 自动回复文本消息
当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以特定XML结构,来对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。
官网的开发流程报告
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
参考:
https://www.jianshu.com/p/a93d8f8ab7a6
https://www.jianshu.com/p/3fbacde9f3a9