2018-09-04 公众号(订阅号)开发从零配置

最近在做公众号相关,所以自己从头了解了一下流程,其中appid,ip等数据为虚拟数据。

  1. 申请域名
  2. 域名解析
  3. 申请微信个人订阅号
  4. 在微信开发里面填写服务器配置

获取三个字段,AppID Token EncodingAESKey,在公众号的开发/基本配置/填写服务器配置 填写。
appid:wxa7a352b54d385772
appsecret: 8db49d5176c1f0b2e01b2cb5902e54f6
access_token:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
接口返回-10000状态码是需要设置ip白名单
注意 服务器配置的token是自己随便设置的字符串,填写后暂时不要关闭该页面,也不要提交,在后面服务器代码里面的token填写为和这个token保持一致就行,启动服务器并且nginx配置完成后 提交微信的配置表单,并且启用就ok。

  1. 服务器安装node

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

  1. 创建工作目录

mkdir -p /data/release/weapp
进入目录
创建app.js和package.json
编写服务器代码app.js
全局安装pm2,局部安装erpress,wechat模块。

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. 安装nginx

NodeJs只是侦听的机器上的 5050 端口,我们使用 nginx 侦听 80 端口提供对外域名服务
yum install nginx -y
安装完成后使用 nginx 启动nginx
此时访问http://111.231.117.55可以看到Nginx的测试页面

  1. 配置反向代理

外网用户访问服务器的 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;
        }
    }

nginx -s reload 此时可以通过域名访问

  1. 提交之前微信服务器配置的页面。并启用。
  2. 在公众号聊天界面中发送消息,可以得到回复。

你可能感兴趣的:(2018-09-04 公众号(订阅号)开发从零配置)