手把手教你基于CentOS8搭建微信订阅号后台服务(一)

时间:2024-03-03 08:32:45

一、准备域名并完成解析

  • 关于域名,我买的是阿里的一个1元/年的廉价域名,同时国内域名都需要备案,当时在这里耽搁了挺久的。
  • 域名解析的话,在阿里云官方帮助文档里有。传送门:https://help.aliyun.com/document_detail/29716.html

二、申请微信个人订阅号

  1. 在微信公众号平台注册开发者账号
  2. 获取公众平台认证字段信息
    • AppID:登入平台,选择 开发-基本配置
    • Token:基本配置-服务器配置-修改配置,url填写第一步申请的域名,编一个Token
    • EncodingAESKey:随机获取
      保留页面,进入下一步

三、搭建HTTP服务

使用Node + Express搭建一个HTTP服务器

  1. 安装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,添加我们服务器包的名称和版本号
      vim package.json
      { "name":"weapp", "version":"v6.10.3" }
  3. 添加 Server 源码
    需开放5050端口,官方文档传送门:https://help.aliyun.com/document_detail/25471.html?spm=a2c6h.13066369.0.0.1eec1ecffpabDV&source=5176.11533457&userCode=xbifxhv7&type=copy
    -工作目录创建 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}`);
  1. 运行 HTTP 服务
  • 安装PM2:
    npm install pm2 --global
  • 安装Express
cd /data/release/weapp
npm install express --save
  • 安装 Wechat
cd /data/release/weapp
npm install wechat --save
  • 启动服务
cd /data/release/weapp
pm2 start app.js
  • 查看服务输出的日志
    pm2 logs
  • 重启服务
    pm2 restart app
    我们使用 PM2 来进行 Node 进程的运行、监控和管理
  • NPM 仓库在国内访问速度可能不太理想,如果实在太慢可以尝试使用 CNPM 的 Registry 进行安装
    npm install pm2 -g --registry=https://r.cnpmjs.org/

四、搭建 Nginx 对外服务

简单来讲,就是做一个外网可以访问的途径。

  1. 安装 Nginx(我之前宝塔都装过了,这里也可以用命令安装)
    yum install nginx -y
  2. 启动 Nginx
    nginx
    理论上到这就可以域名访问了
  3. 配置 HTTP 反向代理
    Nginx 配置目录在 /etc/nginx/conf.d,我们在该目录创建 wechat.conf
server {
listen 80;
server_name www.example.com; # 改为第一步申请的域名

location / {
proxy_pass http://127.0.0.1:5050;
}
}

nginx -s reload

##在浏览器通过 http 的方式访问你解析的域名来测试 HTTP 是否成功启动

五、使用Server端回复微信消息

  1. 提交服务端配置
    • 我们将第二步微信公众平台中保留的表单提交,同时将 基本配置 - 服务器配置 启用
      2.关注、发送与消息回复
    • 首先通过二维码关注微信订阅号
    • 在聊天界面向微信公众号发送一条消息
    • 最终我们会回到一条 你好,Hello World! 的回复

end