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 判断页面元素是否存在的代码
Aug 14 Javascript
Js动态添加复选框Checkbox的实例方法
Apr 08 Javascript
jquery中append()与appendto()用法分析
Nov 14 Javascript
javascript实现列表滚动的方法
Jul 30 Javascript
js判断子窗体是否关闭的方法
Aug 11 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
Jul 28 Javascript
node.js入门教程之querystring模块的使用方法
Feb 27 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
Mar 09 Javascript
Three.js加载外部模型的教程详解
Nov 10 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
Feb 01 Javascript
vue图片上传组件使用详解
Dec 23 Javascript
JavaScript数组reduce()方法的语法与实例解析
Jul 07 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高自定义性安全验证码代码
2011/11/27 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
微信自定义分享php代码分析
2016/11/24 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
用Python实现协同过滤的教程
2015/04/08 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
Python多继承原理与用法示例
2018/08/23 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
用python写爬虫简单吗
2020/07/28 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
销售自我评价
2013/10/22 职场文书
元旦促销方案
2014/03/15 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
工作表扬信范文
2015/01/17 职场文书
教师求职简历自我评价
2015/03/10 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
新闻报道稿范文
2015/07/23 职场文书
任命书格式范文
2015/09/22 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL