UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

68 lines (66 loc) 2.05 kB
/* eslint-disable @typescript-eslint/no-require-imports */ var URL_MAP = { ACCESS_TOKEN: 'https://api.weixin.qq.com/cgi-bin/token', TICKET: 'https://api.weixin.qq.com/cgi-bin/ticket/getticket' }; var sha1 = function sha1(content) { return require('crypto').createHash('sha1').update(content).digest('hex'); }; function getAccessToken(_a) { var appId = _a.appId, appSecret = _a.appSecret; var axios = require('axios'); return new Promise(function (resolve, reject) { axios({ url: "".concat(URL_MAP.ACCESS_TOKEN, "?grant_type=client_credential&appid=").concat(appId, "&secret=").concat(appSecret) }).then(function (res) { resolve(res.data || {}); })["catch"](function (err) { reject(err); }); }); } function getAPITicket(accessToken) { var axios = require('axios'); return new Promise(function (resolve, reject) { axios({ url: "".concat(URL_MAP.TICKET, "?access_token=").concat(accessToken, "&type=jsapi") }).then(function (res) { if (res === void 0) { res = {}; } resolve(res.data || {}); })["catch"](function (err) { reject(err); }); }); } function getNonceStr() { var buf = require('crypto').randomBytes(12); var hexToDec = buf.toString('hex'); return hexToDec; } /** * 获取jsAPI签名 * * 校验地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign * * 文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html * @param ticket 票据 * @param url 当前url,不包括#之后的部分 * @returns signature */ function genSignature(ticket, url) { var timestamp = Math.floor(Date.now() / 1000); var nonceStr = getNonceStr(); var list = ["jsapi_ticket=".concat(ticket), "noncestr=".concat(nonceStr), "timestamp=".concat(timestamp), "url=".concat(url)]; var str = list.join('&'); var signature = sha1(str); return { timestamp: timestamp, nonceStr: nonceStr, signature: signature, url: url }; } export { genSignature, getAPITicket, getAccessToken };