搭建微信订阅号后台服务

1. 准备域名和服务器

微信公众平台需要配置服务器地址 URL 访问,在实验开始之前,我们要准备域名。

  • 购买服务器(腾讯云

  • 域名注册

  • 域名解析

    域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 ,如:

    ping www.yourdomain.com

    如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。

2. 申请微信个人订阅号

在开始搭建我们的订阅号服务器之前,需要先拿到订阅号相关信息。

  • 注册开发者账号

    如果你还不是微信订阅号开发者,请先在微信公众平台注册:
    https://mp.weixin.qq.com

  • 获取微信订阅号公众平台认证字段信息

    我们需要获取3个字段:AppID Token EncodingAESKey

    登录微信公众平台,依次进入 开发 - 基本配置 可以拿到 AppID。

    基本配置 - 服务器配置 - 修改配置 表单中:
    URL 填第一步申请的域名;

    Token 用户根据提示填写,用于后面校验服务端合法性;

    EncodingAESKey 点击 随机生成 按钮来生成。

    当点击表单 提交 按钮时,微信会通过 Token 来校验 URL 的合法性,这个我们在后面步骤实现,此界面暂时保留不关闭。

3. 搭建 HTTP 服务

下面的步骤,将带大家在服务器上使用 Node 和 Express 搭建一个 HTTP 服务器

  • 安装 NodeJS 和 NPM

    使用下面的命令安装 NodeJS 和 NPM

    curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
    yum install nodejs -y

    安装完成后,使用下面的命令测试安装结果

    node -v
  • 编写 HTTP Server 源码

    创建工作目录

    使用下面的命令在服务器创建一个工作目录:

    mkdir -p /data/release/weapp

    进入此工作目录

    cd /data/release/weapp

    创建 package.json

    在刚才创建的工作目录创建 package.json,添加我们服务器包的名称和版本号,可参考下面的示例。

    {
        "name": "weapp",
        "version": "1.0.0"
    }

    添加 Server 源码

    在工作目录创建 app.js,使用 Express.js 来监听 5050 端口,可参考下面的示例代码(注:请将 app.js 文件中的token/appid/encodingAESKey等配置项替换为您的订阅号对应的取值)。

    // 引用 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}`);
  • 运行 HTTP 服务

    安装 PM2

    在开始之前,我们先来安装 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://yourdomain.com:5050 运行要查看服务输出的日志,可以使用下面的命令:

    pm2 logs

    如果要重启服务,可以使用下面的命令:

    pm2 restart app

4. 搭建 nginx 对外服务

NodeJs只是侦听的机器上的 5050 端口,我们使用 nginx 侦听 80 端口提供对外域名服务

  • 安装 Nginx

    在 CentOS 上,可直接使用 yum 来安装 Nginx

    yum install nginx -y

    安装完成后,使用 nginx 命令启动 Nginx:

    nginx

    此时,访问 http://yourdomain.com 可以看到 Nginx 的测试页面

  • 配置 HTTP 反向代理

    外网用户访问服务器的 Web 服务由 Nginx 提供,Nginx 需要配置反向代理才能使得 Web 服务转发到本地的 Node 服务。

    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 是否成功启动

5. 使用Server端回复微信消息

  • 提交服务端配置

    我们将第二步微信公众平台中保留的表单提交,同时将 基本配置 - 服务器配置 启用

  • 关注、发送与消息回复

    首先通过二维码关注微信订阅号

    在聊天界面向微信公众号发送一条消息

    最终我们会回到一条 你好,Hello World! 的回复

  • 大功搞成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值