微信公众号自动回复

1) 接口测试号申请

微信公众平台=>开发=>基本配置

2) 接口信息配置

(1) 必须得有一个域名,可以使用SSH穿透

ssh -vnNt -R 7788:localhost:3333 [email protected]

②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

你可能感兴趣的:(微信公众号自动回复)