当前位置: 代码迷 >> 综合 >> 微信公众号测试号接口配置信息
  详细解决方案

微信公众号测试号接口配置信息

热度:8   发布时间:2024-02-12 09:58:27.0
//引入express模块
const express = require('express');
//引入sha1模块
const sha1 = require('sha1');
//创建app应用对象
const app = express();
//验证服务器有效性
/*** 1.微信服务器知道开发者服务器是哪个*  -测试号管理页面上填写url开发者服务器地址*    -使用ngrok 内网穿透 将本地端口号开启的服务映射外网跨域访问一个地址*      -ngrok http 3000*  -填写token*   -参与微信签名加密的一个参数* 2.开发者服务器 - 验证消息是否来自于微信服务器* */
const config = {token: 'hzz2020',appID: 'wx7a136ffa436a1afe',appsecret: '5b0f9a7ee095a79fedb2ac7f014cb661'
}
//接受处理所有消息
app.use((req, res, next) => {//微信服务器提交的内容console.log(req.query);/*参数	描述signature	微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。timestamp	时间戳nonce	随机数echostr	随机字符串*/const { signature, echostr, timestamp, nonce } = req.query;const { token } = config;//1.将参与微信加密签名的三个参数(timestamp,nonce,token)按照字典序排序并组合在一起形成一个数组const arr = [timestamp, nonce, token];const arrSort = arr.sort();console.log(arrSort)//2.将数组里所有参数拼接成一个字符串,进行sha1加密const str = arr.join('');console.log(str);const sha1Str = sha1(str);console.log(sha1Str);//3.加密完成生成了一个signature,和微信发送过来的进行对比if (sha1Str === signature) {//如果一样,说明消息来自于微信服务器,返回echostr给微信服务器res.send(echostr)} else {res.end('error');}
})
//监听端口号
app.listen(3000, () => console.log('服务器启动成功了~'));

把代码放到一个js文件即可,用Node启动

此文件做测试来验证服务器的有效性

  相关解决方案