当前位置:   article > 正文

微信公众号_接口测试_验证服务器有效性_express微信接口测试

express微信接口测试

 思路:

1.微信服务器知道开发者服务器是哪个

-测试号管理界面上填写url开发者服务器地址

-内网穿透使微信服务器能访问到映射到外网的开发者服务器地址

-填写token,进行加密

2.开发者服务器验证消息是否来自于微信服务器

  1. //npm i express下载包npm i下载依赖
  2. //内网穿透一下
  3. const express = require('express');
  4. const sha1 = require('sha1')
  5. const app = express();
  6. //定义配置对象
  7. const config = {
  8. token: '1234',
  9. appID: 'wx387707c142342e5f',
  10. appsecret: 'ed1109d567b0bf87eba63747f6aa71b2'
  11. }
  12. app.use((req, res, next) => {
  13. console.log(req.query)
  14. const { signature, echostr, timestamp, nonce } = req.query //对象的结构赋值
  15. const { token } = config
  16. /*
  17. {微信服务器发来的东西
  18. signature: '9bf986bba167e1d38434813148d9622cf1e143c0',微信的加密签名,在自己服务器根据这个算出是否来自微信服务器
  19. echostr: '3329679419479420731',微信随机字符串
  20. timestamp: '1635763993',微信发送请求的时间戳
  21. nonce: '378478086'随机数字
  22. }
  23. */
  24. //timestamp, nonce, token字典排序拼接成字符串sha1加密, 如果和signature一样, 返回给微信服务器
  25. const arr = [timestamp, nonce, token];
  26. const arrSort = arr.sort()
  27. console.log(arrSort)
  28. //npm i sha1
  29. const str = arr.join('')
  30. const sha1str = sha1(str)
  31. console.log(sha1str)
  32. if (sha1str == signature) {
  33. res.send(echostr)
  34. } else {
  35. res.end('error')
  36. }
  37. })
  38. app.listen(6177, () => {
  39. console.log('server is running...')
  40. })
  41. //在微信测试号管理页面填写url开发者服务器地址(每次穿透地址都不一样)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/280746
推荐阅读
相关标签
  

闽ICP备14008679号