使用云服务器搭建微信公众号后台服务
一、申请微信个人订阅号 1.注册开发者账号 如果你还不是微信订阅号开发者,请先在微信公众平台注册: https://mp.weixin.qq.com 2.获取微信订阅号公众平台认证字段信息 我们需要获取3个字段:AppID Token EncodingAESKey。 登录微信公众平台,依次进入 开发->基本配置 可以拿到 AppID。 在基本配置 -> 服务器配置 -> 修改配置 表单中: URL 填第一步申请的域名; Token 用户根据提示填写,用于后面校验服务端合法性; EncodingAESKey 点击随机生成按钮来生成。 Snipaste_2019-11-18_14-40-41.png 当点击表单提交按钮时,微信会通过 Token 来校验 URL 的合法性,这个我们在后面步骤实现,此界面暂时保留不关闭。 二、搭建 HTTP 服务 1.安装 NodeJS 和 NPM 使用下面的命令安装 NodeJS 和 NPM curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -yum install nodejs -y 安装完成后,使用下面的命令测试安装结果 node -v 2.编写 HTTP Server 源码 创建工作目录 mkdir -p /data/release/weapp 进入此工作目录 cd /data/release/weapp 创建 package.json 在刚才创建的工作目录创建 package.json,添加我们服务器包的名称和版本号,如下。 package.json { "name": "weapp", "version": "1.0.0" } 完成后,使用 Ctrl + S 保存文件 添加 Server 源码 在工作目录创建 app.js,使用 Express.js 来监听 5050 端口,可参考下面的示例代码(注:将 app.js 文件中的token/appid/encodingAESKey等配置项替换为你的订阅号对应的取值)。 app.js // 引用 express 来支持 HTTP Server 的实现 const express = require('express'); // 引用微信公共平台自动回复消息接口服务中间件 var wechat = require('wechat'); // 创建一个 express 实例 const app = express(); // 配置微信公众平台参数,在教程第二步中获取 var config = { token: 'your token', // 填第二步中获取的 token appid: 'your appid', // 填第二步中获取的 appid encodingAESKey: 'your encodingAESKey', // 填第二步中获取的 encodingAESKey checkSignature: true // 可选,默认为true。由于微信公众平台接口调试工具在明文模式下不发送签名,所以如要使用该测试工具,请将其设置为false }; app.use(express.query()); app.use('/', wechat(config, function (req, res, next) { res.reply({ content: '你好,Hello World!', type: 'text' }); })); // 监听端口,等待连接 const port = 5050; app.listen(port); // 输出服务器启动日志 console.log(Server listening at http://127.0.0.1:${port}); 3。运行 HTTP 服务 在开始之前,我们先来安装 PM2 npm install pm2 --global PM2 安装时间可能稍长,请耐心等候 安装 Express 服务器源码里使用到了 Express 模块,下面的命令使用 NPM 来安装 Express cd /data/release/weapp npm install express --save 安装 Wechat 服务器源码里使用到了 Wechat 模块,下面的命令使用 NPM 来安装 Wechat cd /data/release/weapp npm install wechat --save 启动服务 安装完成后,使用 PM2 来启动 HTTP 服务 cd /data/release/weapp pm2 start app.js 现在 HTTP 服务已经在http://你的服务器IP:5050 运行 要查看服务输出的日志,可以使用下面的命令: pm2 logs 如果要重启服务,可以使用下面的命令: pm2 restart app 三、搭建 nginx 对外服务 1.安装 Nginx 在 CentOS 上,可直接使用 yum 来安装 Nginx yum install nginx -y 安装完成后,使用 nginx 命令启动 Nginx: nginx 此时,访问http://你的服务器IP 可以看到 Nginx 的测试页面 2.配置 HTTP 反向代理 外网用户访问服务器的 Web 服务由 Nginx 提供,Nginx 需要配置反向代理才能使得 Web 服务转发到本地的 Node 服务。 Nginx 配置目录在 /etc/nginx/conf.d,我们在该目录创建 wechat.conf wechat.conf server { listen 80; server_name www.example.com; # 改为第一步申请的域名 location / { proxy_pass http://127.0.0.1:5050; } } 按 Ctrl + S 保存配置文件,让 Nginx 重新加载配置使其生效: nginx -s reload 在浏览器通过 http 的方式访问你解析的域名来测试 HTTP 是否成功启动 四、使用Server端回复微信消息 1.提交服务端配置 我们将第一步微信公众平台中保留的表单提交,同时将 基本配置 -> 服务器配置 启用 2.关注、发送与消息回复 首先通过二维码关注微信订阅号 在聊天界面向微信公众号发送一条消息 最终我们会回到一条 你好,Hello World! 的回复 阿里云服务器:活动地址 购买可领取:阿里云代金券