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 相关文章推荐
菜鸟javascript基础资料整理3 正则
Dec 06 Javascript
javascript框架设计读书笔记之种子模块
Dec 02 Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
Sep 18 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
Mar 03 Javascript
详解Node.js开发中的express-session
May 19 Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
关于js中的鼠标事件总结
Jul 11 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 Javascript
详解JavaScript 异步编程
Jul 13 Javascript
工作中常用js功能汇总
Nov 07 Javascript
如何优化vue打包文件过大
Apr 13 Vue.js
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下通过伪造http头破解防盗链的代码
2010/07/03 PHP
解析csv数据导入mysql的方法
2013/07/01 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
js 设置选中行的样式的实现代码
2010/05/24 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
jQuery 限制输入字符串长度
2016/06/20 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
详解Python文本操作相关模块
2017/06/22 Python
Python实现登录接口的示例代码
2017/07/21 Python
python查看列的唯一值方法
2018/07/17 Python
Python爬取成语接龙类网站
2018/10/19 Python
Python3中列表list合并的四种方法
2019/04/19 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
python自动生成sql语句的脚本
2021/02/24 Python
预备党员思想汇报范文
2013/12/29 职场文书
银行职员思想汇报
2013/12/31 职场文书
小学新教师培训方案
2014/02/03 职场文书
工作违纪检讨书
2014/02/17 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
2014年组织部工作总结
2014/11/14 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers