微信公众号开发之测试号入坑大法(一)——联通公众号测试号

一、前言

微信公众号开发真的是很麻烦,于是想弄一个方法,可以在vue开发模式下进行调试的。然后就不断踩坑,终于有了这系列的文章。话少说,直接上干货!(怎么注册公众号这里就省略了)

二、微信公众号测试号

1、输入微信公众号测试号,点击红色圈住的地方

微信公众号开发之测试号入坑大法(一)——联通公众号测试号_第1张图片

2、然后进行扫码登录,进入到下图这一步

微信公众号开发之测试号入坑大法(一)——联通公众号测试号_第2张图片

                                                                                                 图2-1-1

微信公众号开发之测试号入坑大法(一)——联通公众号测试号_第3张图片

                                                                                       图2-1-2

我是用node开发的,所以大概的思路和关键代码如下图:

微信公众号开发之测试号入坑大法(一)——联通公众号测试号_第4张图片

                                                                                           图2-2

微信公众号开发之测试号入坑大法(一)——联通公众号测试号_第5张图片                                                                                               图2-3

弄好之后,直接点击下图提交按钮

微信公众号开发之测试号入坑大法(一)——联通公众号测试号_第6张图片

如果显示配置成功,则代表已经配置成功,如果页面上部弹出配置失败,则代表还是有问题,可以看一下签名算法是否正确

 

 

最后附上相关代码,然后第二篇我们将讲解如何获取用户的个人信息(包括微信头像,微信昵称等)

微信公众号开发之测试号入坑大法(一)——联通公众号测试号_第7张图片

/* 这个token要和上图配置测试号的token一样 */
const token = '123456';

/* 检验token和自己设置的token所生成的签名是否相等 */

/**
 * @description 测试是否连的通微信服务器
 * 这个是填写自己的后台服务器某个接口的,目的是测试微信服务器是否能接收到自己的服务器的信息。
 * 原理是:微信服务器会访问这个接口,并且传过来四个参数:nonce,timestamp,signature还有echostr到你的服务器,
 * 然后你的服务器要根据自己设置的token,nonce,timestamp用微信规定的sha1算法得到签名,然后与微信服务器
 * 传回来的signature对比,如果相等的话,就返回echostr即可,这样子就完成了公众号测试号的联通
 * @author lvzhiyuan
 * @date 2020/3/6
 */
router.get('/checkToken', async (req, res, next) => {
  try {
    const query = url.parse(req.url).query;
    const params = qs.parse(query);
    if (!checkSignature(params, token)) {
      res.end('signature fail');
    }
    if (req.method === "GET") {
      res.end(params.echostr);
    }
  } catch (e) {
    console.log(`routes/users.js-user error: ${e}`);
  }
});

 

/**
 * @description sha1签名算法
 * @author lvzhiyuan
 * @date 2020/5/6
 */
function checkSignature (params, token) {
    var key = [token, params.timestamp, params.nonce].sort().join('');
    //将token (自己设置的) 、timestamp(微信传过来的时间戳)、nonce(微信传过来的随机数)三个参数进行字典排序
    var sha1=require('crypto').createHash('sha1');
    //将上面三个字符串拼接成一个字符串再进行sha1加密
    sha1.update(key);
    return sha1.digest('hex') === params.signature;
}

 

你可能感兴趣的:(前端,微信公众号,测试号)