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 相关文章推荐
LBS blog sql注射漏洞[All version]-官方已有补丁
Aug 26 Javascript
javascript Base类 包含基本的方法
Jul 22 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
Oct 28 Javascript
JavaScript使用cookie实现记住账号密码功能
Apr 27 Javascript
angular十大常见问题
Mar 07 Javascript
js图片放大镜效果实现方法详解
Oct 28 Javascript
JS分页的实现(同步与异步)
Sep 16 Javascript
解决layui 复选框等内置控件不显示的问题
Aug 14 Javascript
vue前后分离调起微信支付
Jul 29 Javascript
JavaScript实现文件下载并重命名代码实例
Dec 12 Javascript
JavaScript中的执行环境和作用域链
Sep 04 Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python实现壁纸下载与轮换
2020/10/19 Python
pymysql模块使用简介与示例
2020/11/17 Python
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
产品销售员岗位职责
2013/12/18 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
Golang中channel的原理解读(推荐)
2021/10/16 Golang