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 24 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
Jul 23 Javascript
javascript实现点击后变换按钮显示文字的方法
May 13 Javascript
Angularjs中使用Filters详解
Mar 11 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
Nov 29 Javascript
详解angularjs中如何实现控制器和指令之间交互
May 31 Javascript
JavaScript实现短信倒计时60s
Oct 09 Javascript
vue2 前端搜索实现示例
Feb 26 Javascript
vue 实现在函数中触发路由跳转的示例
Sep 01 Javascript
详解Node.js读写中文内容文件操作
Oct 10 Javascript
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
ES6中定义类和对象的方法示例
Jul 31 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
用Socket发送电子邮件
2006/10/09 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
node.js下LDAP查询实例分享
2015/09/30 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
浅谈Python单向链表的实现
2015/12/24 Python
探究python中open函数的使用
2016/03/01 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
会计助理岗位职责
2014/02/17 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
党员个人自我评价
2015/03/03 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL