背景
前端在调用微信提供的分享、拍照、扫一扫等功能时需要到后台获取配置,主要是签名(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);
接入多个微信公众号
待我重构归来。。。。。。