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实现图片左右间隔滚动特效(可自动播放)
May 08 Javascript
Javascript小技能总结(推荐)
Jun 02 Javascript
JS作用域深度解析
Dec 29 Javascript
JavaScript+HTML5实现的日期比较功能示例
Jul 12 Javascript
vue轮播图插件vue-awesome-swiper
Nov 27 Javascript
微信小程序实现搜索指定景点周边美食、酒店
May 18 Javascript
判断“命令按钮”是否被鼠标单击详解
Jul 31 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
Nov 05 Javascript
微信小程序点击view动态添加样式过程解析
Jan 21 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
Jul 28 Javascript
理解JavaScript中的对象
Aug 25 Javascript
如何制作自己的原生JavaScript路由
May 05 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
JS原型链怎么理解
2016/06/27 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
Python类定义和类继承详解
2015/05/08 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
Python-opencv 双线性插值实例
2020/01/17 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
大学生求职信范文应怎么写
2014/01/01 职场文书
机械专业求职信
2014/05/25 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
民族学专业求职信
2014/07/28 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
公司欠款证明
2015/06/24 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
vue中div禁止点击事件的实现
2022/04/02 Vue.js
我的收音机情缘
2022/04/05 无线电
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js