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 eval函数深入认识
Feb 21 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
Three.js源码阅读笔记(物体是如何组织的)
Dec 27 Javascript
Jquery实现搜索框提示功能示例代码
Aug 13 Javascript
jQuery编写设置和获取颜色的插件
Jan 09 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
js上下视差滚动简单实现代码
Mar 07 Javascript
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 jQuery
zTree树形菜单交互选项卡效果的实现方法
Dec 25 Javascript
vue 指令之气泡提示效果的实现代码
Oct 18 Javascript
对TypeScript库进行单元测试的方法
Jul 18 Javascript
html-webpack-plugin修改页面的title的方法
Jun 18 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
ftp类(example.php)
2006/10/09 PHP
php防盗链的常用方法小结
2010/07/02 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
python使用super()出现错误解决办法
2017/08/14 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
教育实习生的自我评价分享
2013/11/21 职场文书
学生党员思想汇报
2013/12/28 职场文书
汽车专业学生自我评价
2014/01/19 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
售后客服工作职责
2014/06/16 职场文书
公司离职证明标准格式
2014/11/18 职场文书
李白故里导游词
2015/02/12 职场文书
四年级作文之植物
2019/09/20 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
Python合并多张图片成PDF
2021/06/09 Python