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 相关文章推荐
JSON 编辑器实现代码
Dec 06 Javascript
a标签的href和onclick 的事件的区别介绍
Jul 26 Javascript
js格式化时间和js格式化时间戳示例
Feb 10 Javascript
JavaScript实现的链表数据结构实例
Apr 02 Javascript
实现无刷新联动例子汇总
May 20 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 jQuery
Vue.js实现的计算器功能完整示例
Jul 11 Javascript
node.js的http.createServer过程深入解析
Jun 06 Javascript
简单分析js中的this的原理
Aug 31 Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 Javascript
js制作提示框插件
Dec 24 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
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
分享PHP守护进程类
2015/12/30 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
php自定义时间转换函数示例
2016/12/07 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
JavaScript类库D
2010/10/24 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
JavaScript实现拖拽效果
2020/03/16 Javascript
JavaScript如何操作css
2020/10/24 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
金士达面试非笔试
2012/03/14 面试题
通息工程毕业生自荐信
2013/10/16 职场文书
大学生简历求职信
2014/06/24 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
开场白怎么写
2015/06/01 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python