一、准备域名并完成解析

  • 关于域名,我买的是阿里的一个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

手把手教你基于CentOS8搭建微信订阅号后台服务(一)的更多相关文章

  1. 使用python django快速搭建微信公众号后台

    前言 使用python语言,django web框架,以及wechatpy,快速完成微信公众号后台服务的简易搭建,做记录于此. wechatpy是一个python的微信公众平台sdk,封装了被动消息和 ...

  2. 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)

    1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...

  3. 手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)

    1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...

  4. 手把手教你用vue-cli搭建vue项目

    手把手教你用vue-cli搭建vue项目 本篇主要是利用vue-cli来搭建vue项目,其中前提是node和npm已经安装好,文章结尾将会简单提到一个简单的例子.使用vue-cli搭建项目最开始我也是 ...

  5. 手把手教你使用 VuePress 搭建个人博客

    手把手教你使用 VuePress 搭建个人博客 有阅读障碍的同学,可以跳过第一至四节,下载我写好的工具包: git clone https://github.com/zhangyunchencc/vu ...

  6. 手把手教你用Python搭建自己的量化回测框架【均值回归策略】

    手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的, ...

  7. SpringCloud学习之手把手教你用IDEA搭建入门项目(二)

    本篇博客是承接上一篇<手把手教你用IDEA搭建SpringCloud入门项目(一)>,不清楚的请到我的博客空间查看后再看本篇博客 1)先创建一个Eureka服务注册中心模块,用来作为服务的 ...

  8. 手把手教你认识并搭建Nginx

    手把手教你认识并搭建Nginx Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor ...

  9. 沉淀,再出发——手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群

    手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群 一.准备,再出发 在项目启动之前,让我们看一下前面所做的工作.首先我们掌握了一些Linux的基本命令和重要的文件,其次我们学会 ...

随机推荐

  1. 运用sed命令高效地删除文件的特定行

    运用 sed 命令高效地删除文件的特定行 正常来说,我们想要删除文件中的某些行内容,一般都是先打开这个文件,然后找到要删除的内容,再然后选中这些行并按删除键进行删除,这在数据量很少时是没有问题的.但是 ...

  2. mybatis批量添加数据的三种方式

    原文地址:https://www.cnblogs.com/gxyandwmm/p/9565002.html

  3. OpenCV实现人脸检测

    OpenCV实现人脸检测(转载)  原文链接:https://www.cnblogs.com/mengdd/archive/2012/08/01/2619043.html 本文介绍最基本的用OpenC ...

  4. python练习 - 系统基本信息获取(sys标准库)+ 二维数据表格输出(tabulate库)

    系统基本信息获取 描述 获取系统的递归深度.当前执行文件路径.系统最大UNICODE编码值等3个信息,并打印输出.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮ ...

  5. 最佳实践:Pulsar 为批流处理提供融合存储

    非常荣幸有机会和大家分享一下 Apache Pulsar 怎样为批流处理提供融合的存储.希望今天的分享对做大数据处理的同学能有帮助和启发. 这次分享,主要分为四个部分: 介绍与其他消息系统相比, Ap ...

  6. 攻防世界——web新手练习区解题总结<2>(5-8题)

    第五题cookie: 所需工具:burpsuite(需自行下载) 老规矩看完题,先获取在线场景,得到如下网页 那么什么是cookie呢?大体上就是网站为了识别用户身份而储存在用户本地终端上的数据,类型 ...

  7. iOS打电话功能的简单实现

    小功能简介 iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话.打开网址.发邮件.发短信等 打电话-方法3 创建一个UIWebView来加载URL,拨完后能自动回到原应用 if (_we ...

  8. 机器学习,详解SVM软间隔与对偶问题

    今天是机器学习专题的第34篇文章,我们继续来聊聊SVM模型. 我们在上一篇文章当中推导了SVM模型在硬间隔的原理以及公式,最后我们消去了所有的变量,只剩下了\(\alpha\).在硬间隔模型当中,样本 ...

  9. Python3 字典浅析

    Python 字典 字典(Dictionary) 字典是一个无序.可变和有索引的集合.在 Python 中,字典用花括号编写,拥有键和值. 实例 创建并打印字典: thisdict = { " ...

  10. 使用代码生成工具快速生成基于ABP框架的Vue+Element的前端界面

    世界上唯一不变的东西就是变化,我们通过总结变化的规律,以规律来应付变化,一切事情处理起来事半功倍.我们在开发后端服务代码,前端界面代码的时候,界面都是依照一定的规律进行变化的,我们通过抽取数据库信息, ...