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

//引入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启动

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

 

模块化后的代码:

微信公众号测试号接口配置信息_第1张图片

你可能感兴趣的:(微信公众号,jquery)