背景

前端在调用微信提供的分享、拍照、扫一扫等功能时需要到后台获取配置,主要是签名(signature)。Node 开发可以用朴灵大佬的SDK——co-wechat-api

配置

到微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。前提是该域名的项目目录下有微信提供的校验文件。如果需要本地调试或者测试环境调试,可以把IP白名单也顺便配置一下。

开发

实例化 WechatAPI 对象

const WECHAT_API = new WechatAPI(
appid,
secret,
get_access_token, // function
save_access_token, // function 缓存 access_token
); WECHAT_API.registerTicketHandle(
get_js_api_ticket, // function
save_js_api_ticket, // function 缓存 jsapi_ticket
);

注意jsapi_ticket 是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket 的有效期为7200秒,通过 access_token 来获取。由于获取 jsapi_ticket 的api调用次数非常有限,频繁刷新 jsapi_ticket 会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存 jsapi_ticket。同样的,access_token 有效期也是7200秒,同样需要全局缓存。

缓存的函数就是简单的 JSON.stringify 后存入 redis 或其他数据库。

调用

const params = {
debug: false,
jsApiList: [], // 需要获取的能力,由前端传入
url: '', // 申请能力并且在后台配置过的域名
};
ctx.body = await WECHAT_API.getJsConfig(params);

接入多个微信公众号

待我重构归来。。。。。。

博客首发地址:https://www.jianshu.com/u/13cd86311525

最新文章

  1. 安卓TabHost页面
  2. SQL 行列倒置
  3. POJ-3461 Oulipo(KMP,模式串在主串中出现次数)
  4. JS类型、值和变量 笔记
  5. php运行机制初探
  6. D - DZY Loves Hash CodeForces - 447A
  7. VME总线
  8. vue服务器端渲染
  9. 从知乎首页用户操作入口学习到的CSS技巧 - 合理利用伪元素实现一些装饰样式
  10. MyEclipse配置tomcat报错 - java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor version 51.0
  11. SVN多项目并行版本管理解决方案
  12. Android - View的绘制你知道多少?
  13. c# 菜鸟包裹查询
  14. Linux中添加快捷
  15. C++易混淆知识点整理
  16. 行逻辑链接的顺序表实现稀疏矩阵的相乘(Java语言描述)
  17. 『cs231n』作业1选讲_通过代码理解KNN&交叉验证&SVM
  18. 带你了解数据库中事务的ACID特性
  19. G - Ice_cream's world I (并查集)
  20. 关于Python3中函数:

热门文章

  1. Cookie保存中文用户名报错(500)
  2. SAS 操作数据集的观测
  3. BERT(Bidirectional Encoder Representations from Transformers)
  4. Windows批处理命令学习中遇到的坑--持续更新中
  5. python之路(四)-set集合
  6. 学习Python第五天
  7. 8.0.11版本的mysql更改root密码
  8. [转]Linux操作系统tcpdump抓包分析详解
  9. Android开发 - 掌握ConstraintLayout(八)障碍线(Barrier)
  10. 5个相见恨晚的Linux命令