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 style 中visibility和display之间的区别
Jan 22 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 Javascript
jQuery+Ajax实现无刷新分页
Oct 30 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
Mar 08 Javascript
AngularJs Dependency Injection(DI,依赖注入)
Sep 02 Javascript
JavaScript方法_动力节点Java学院整理
Jun 28 Javascript
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
在element-ui的el-tree组件中用render函数生成el-button的实例代码
Nov 05 Javascript
JS使用数组实现的队列功能示例
Mar 04 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
Sep 27 Javascript
Vuejs中的watch实例详解(监听者)
Jan 05 Javascript
vue实现商品列表的添加删除实例讲解
May 14 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
基于JQuery的密码强度验证代码
2010/03/01 Javascript
js自定义事件代码说明
2011/01/31 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
Swiper自定义分页器使用详解
2017/12/28 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
Python查找相似单词的方法
2015/03/05 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
python入门之基础语法学习笔记
2020/02/08 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
2014的自我评价
2014/01/13 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
优秀员工推荐信
2014/05/10 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014全年工作总结
2014/11/27 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
教师节老师寄语
2015/05/28 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript
docker 制作mysql镜像并自动安装
2022/05/20 Servers