背景
前端在調(diào)用微信提供的分享明肮、拍照看成、掃一掃等功能時需要到后臺獲取配置垂睬,主要是簽名(signature)。Node 開發(fā)可以用樸靈大佬的SDK——co-wechat-api究履。
配置
到微信公眾平臺進(jìn)入“公眾號設(shè)置”的“功能設(shè)置”里填寫“JS接口安全域名”滤否。前提是該域名的項目目錄下有微信提供的校驗文件。如果需要本地調(diào)試或者測試環(huán)境調(diào)試最仑,可以把IP白名單也順便配置一下藐俺。
開發(fā)
實例化 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
是公眾號用于調(diào)用微信JS接口的臨時票據(jù)。正常情況下泥彤,jsapi_ticket
的有效期為7200秒欲芹,通過 access_token
來獲取。由于獲取 jsapi_ticket
的api調(diào)用次數(shù)非常有限吟吝,頻繁刷新 jsapi_ticket
會導(dǎo)致api調(diào)用受限菱父,影響自身業(yè)務(wù),開發(fā)者必須在自己的服務(wù)全局緩存 jsapi_ticket
剑逃。同樣的浙宜,access_token
有效期也是7200秒,同樣需要全局緩存炕贵。
緩存的函數(shù)就是簡單的 JSON.stringify
后存入 redis 或其他數(shù)據(jù)庫梆奈。
調(diào)用
const params = {
debug: false,
jsApiList: [], // 需要獲取的能力,由前端傳入
url: '', // 申請能力并且在后臺配置過的域名
};
ctx.body = await WECHAT_API.getJsConfig(params);
接入多個微信公眾號
待我重構(gòu)歸來称开。。。鳖轰。清酥。。