使用NodeJS来进行微信公众号开发测试号服务器

使用NodeJS来进行微信公众号开发测试号服务器

1. 测试号管理

​ 申请测试号的地址微信公众平台 (qq.com)

​ 这里有相关的 信息需要填写,但是怎么填写呢?既然是测试号,肯定没有正式的服务器什么的,可以使用本地服务器进行相关的测试。
在这里插入图片描述

2. 内网穿透工具

​ 我这里有使用到一个内网的穿透工具内网穿透 - 花生壳管理 (oray.com)
在这里插入图片描述

记得http://xxxxxx的端口为80,https://xxxxxxx的端口为443.

3. NodeJS 代码

​ 相关的NodeJS环境什么的再次就不再赘述了,网上有相关的教程记得把环境搭建好。

​ 主要的代码如下。

const express = require('express');
const app = express();
const sha1 = require("sha1");
// 创建本地的服务器
app.listen(80, '0.0.0.0',function(req,res){	
	console.log('启动本地测试服务器'+'http://localhost:80');
})


app.use((req,res,next)=>{
    // GET请求携带参数是个参数signature,timestamp,nonce,echostr
    console.log('req',req.query);
    const {signature,timestamp,nonce,echostr} = req.query;
    // 服务器的token
    const token = "TOKEN";

    // 将token、timestamp、nonce三个参数进行字典序排序 
    const arrSort = [token,timestamp,nonce];
    arrSort.sort();

    // 将三个参数字符串拼接成一个字符串进行sha1加密,npm install --save sha1
    const str = arrSort.join("");
    const shaStr = sha1(str);

    // 获得加密后的字符串可与signature对比,验证标识该请求来源于微信服务器
    if(shaStr === signature){
        // 确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效
        res.send(echostr);
    }else{
        //否则接入失败。
        res.send("no");
    }
});

相关的json配置如下.

因为每次服务器重启比较麻烦,所以采用了热更新的方式。每次ctrl+s就会更新。

"start": "nodemon index.js"
{
  "name": "node_demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "mysql": "^2.18.1",
    "request": "^2.88.2",
    "sha1": "^1.1.1"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon index.js"
  },
  "author": "",
  "license": "ISC"
}

4. 配置完成

配置完成后,在测试号填写相关的信息然后提交。本地终端会打印相应的信息。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值