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常用数据处理方法小结
Feb 20 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
Vue resource中的GET与POST请求的实例代码
Jul 21 Javascript
基于es6三点运算符的使用方法(实例讲解)
Oct 12 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 Javascript
vue router使用query和params传参的使用和区别
Nov 13 Javascript
使用use注册Vue全局组件和全局指令的方法
Mar 08 Javascript
JS重学系列之聊聊new操作符
Mar 04 Javascript
JavaScript中变量提升和函数提升的详解
Aug 07 Javascript
JavaScript async/await原理及实例解析
Dec 02 Javascript
JavaScript 生成唯一ID的几种方式
Feb 19 Javascript
原生Javascript+HTML5一步步实现拖拽排序
Jun 12 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仿ZOL分页类代码
2008/10/02 PHP
PHP脚本中include文件出错解决方法
2008/11/20 PHP
php array_intersect()函数使用代码
2009/01/14 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
php删除数组元素示例分享
2014/02/17 PHP
php操作xml入门之cdata区段
2015/01/23 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
npm qs模块使用详解
2020/02/07 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
经典c++面试题六
2012/01/18 面试题
畜牧兽医本科生的自我评价
2014/03/03 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
严以用权学习心得体会
2016/01/12 职场文书
公司年会晚会开幕词
2019/04/02 职场文书