Node.js 获取微信JS-SDK CONFIG的方法示例


Posted in Javascript onMay 21, 2019

背景

前端在调用微信提供的分享、拍照、扫一扫等功能时需要到后台获取配置,主要是签名(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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
JavaScript中的toDateString()方法使用详解
Jun 12 Javascript
如何实现JavaScript动态加载CSS和JS文件
Dec 28 Javascript
js数组如何添加json数据及js数组与json的区别
Oct 27 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
Jan 31 Javascript
bootstrap table实例详解
Jan 06 Javascript
jquery 校验中国身份证号码实例详解
Apr 11 jQuery
小程序ios音频播放没声音问题的解决
Jul 11 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
Ajax常用封装库——Axios的使用
May 08 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
May 20 #Javascript
Node 搭建一个静态资源服务器的实现
May 20 #Javascript
vue+element实现打印页面功能
May 20 #Javascript
vue+element实现表单校验功能
May 20 #Javascript
javascript的this关键字详解
May 20 #Javascript
小程序实现新用户判断并跳转激活的方法
May 20 #Javascript
node实现socket链接与GPRS进行通信的方法
May 20 #Javascript
You might like
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
可以将word转成html的js代码
2010/04/11 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
理解Koa2中的async&await的用法
2018/02/05 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
layui使用label标签的方法
2019/09/14 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
Python中的True,False条件判断实例分析
2015/01/12 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python实现字符串加密成纯数字
2019/03/19 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
django框架使用方法详解
2019/07/18 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
中学生获奖感言
2014/02/04 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
企业口号大全
2014/06/12 职场文书
Python内置数据类型中的集合详解
2022/03/18 Python