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 相关文章推荐
js prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
Dec 03 Javascript
JavaScript Event学习第八章 事件的顺序
Feb 07 Javascript
JavaScript 笔记二 Array和Date对象方法
May 22 Javascript
js中关于new Object时传参的一些细节分析
Mar 13 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
Oct 01 Javascript
Bootstrap每天必学之按钮
Nov 26 Javascript
js获取iframe中的window对象的实现方法
May 20 Javascript
简述jQuery Easyui一些用法
Aug 01 jQuery
Angular2之二级路由详解
Aug 31 Javascript
JS实现简易留言板特效
Dec 23 Javascript
Vue的列表之渲染,排序,过滤详解
Feb 24 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中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
python中的多重继承实例讲解
2014/09/28 Python
详解Python当中的字符串和编码
2015/04/25 Python
星球大战与Python之间的那些事
2016/01/07 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
java字符串格式化输出实例讲解
2021/01/06 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
意大利在线药房:Saninforma
2021/02/11 全球购物
文明礼仪事迹材料
2014/01/09 职场文书
公务员培的训心得体会
2014/09/01 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
同学会邀请函模板
2015/01/30 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书