Nodejs开发微信公众号--测试号配置篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41196185/article/details/82734532

微信公众号感觉入门是真的难啊,受权限的约束,个人开发者真的挺难走的,特别像博主这种主攻前端的人。由于迟迟没把域名备案办下来。先从测试号入手。

申请页面信息

打开测试号申请页面,可以看到需要填写的内容。

测试号申请页面

首先要做的就是接口配置信息这部分内容了。

内网穿透

一般我们会在本地进行开发,因此必须使用工具进行内网穿透,将一个公网域名穿透到本地内网。用NTAPP可以做到。使用方法很简单,这里不再赘述。

NodeJS服务器搭建

我这边使用express生成器搭建服务。

// 全局安装生成器
npm install express-generator -g
// 生成项目,并指定模板引擎
express --view=ejs wechat_express

cd wechat_express
// 安装node依赖
npm install
// 启动
set DEBUG=myapp:* & npm start

新建一个配置文件config/index.js

const CONFIG = {
    port: '4300',
    token: '你的token'
}
exports.CONFIG = CONFIG;

在app.js中指定端口

app.set('port', config.port);

写路由,进行微信公众号的token验证

var express = require('express');
var crypto =  require('crypto');
var config = require('../config/index').CONFIG;
var router = express.Router();

router.get('/',function(req,res){
  console.log(req)
  //1.获取微信服务器Get请求的参数 signature、timestamp、nonce、echostr
  var signature = req.query.signature,//微信加密签名
      timestamp = req.query.timestamp,//时间戳
          nonce = req.query.nonce,//随机数
        echostr = req.query.echostr;//随机字符串

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

  //3.将三个参数字符串拼接成一个字符串进行sha1加密
  var tempStr = array.join('');
  const hashCode = crypto.createHash('sha1'); //创建加密类型 
  var resultCode = hashCode.update(tempStr,'utf8').digest('hex'); //对传入的字符串进行加密

  //4.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
  if(resultCode === signature){
      res.send(echostr);
  }else{
      res.send('mismatch');
  }
});

module.exports = router;

启动服务,并在测试号申请页面,填入URL和Token进行验证。验证成功后便可以继续下一步了。

JS接口安全域名

暂时还未用到,填写URL所在域名即可。

猜你喜欢

转载自blog.csdn.net/weixin_41196185/article/details/82734532