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 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
jQuery中获取Radio元素值的方法
Jul 02 Javascript
固定网页背景图同时保持图片比例的思路代码
Aug 15 Javascript
js 窗口抖动示例
Sep 04 Javascript
jquery实现点击弹出层效果的简单实例
Mar 03 Javascript
js调试系列 初识控制台
Jun 18 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
Nov 15 Javascript
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
js使用Promise实现简单的Ajax缓存
Nov 14 Javascript
js实现延迟加载的几种方法详解
Jan 19 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 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
PHP一些有意思的小区别
2006/12/06 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Django的session中对于用户验证的支持
2015/07/23 Python
Python实现简单的四则运算计算器
2016/11/02 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
如何提高JDBC的性能
2013/04/30 面试题
学期自我评价
2014/01/27 职场文书
500字作文之周记
2019/12/13 职场文书