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

一、前言

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

二、微信公众号测试号

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

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

                                                                                                 图2-1-1

                                                                                       图2-1-2

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

                                                                                           图2-2

                                                                                               图2-3

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

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

 

 

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

/* 这个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;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值