@tnwx/commons
Version:
TTNWX 微信系开发脚手架之公共模块
74 lines • 3.33 kB
JavaScript
;
/**
* @author Javen
* @copyright javendev@126.com
* @description 获取api_ticket
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const util = require("util");
const accesstoken_1 = require("@tnwx/accesstoken");
const kits_1 = require("@tnwx/kits");
const JsTicket_1 = require("../entity/JsTicket");
const Enums_1 = require("../Enums");
class QyJsTicketApi {
/**
* 获取api_ticket
* @param type
*/
static getTicket(type) {
return __awaiter(this, void 0, void 0, function* () {
let appId = accesstoken_1.QyApiConfigKit.getApiConfig.getAppId;
let corpId = accesstoken_1.QyApiConfigKit.getApiConfig.getCorpId;
let key = appId
.concat(':')
.concat(corpId)
.concat(':')
.concat(type);
// 从缓存中获取
let cache = accesstoken_1.QyApiConfigKit.getCache;
let jsTicketJson = yield cache.get(key);
if (jsTicketJson) {
const jsTicketInstance = new JsTicket_1.JsTicket(jsTicketJson);
if (accesstoken_1.QyApiConfigKit.isDevMode()) {
console.debug('缓存中获取api_ticket...');
}
if (jsTicketInstance.isAvailable()) {
return jsTicketInstance;
}
}
// 通过接口获取
let accessToken = yield accesstoken_1.QyAccessTokenApi.getAccessToken();
let url;
if (type === Enums_1.QyJsApiType.CORP) {
url = util.format(this.getCorpTicketUrl, accessToken.getAccessToken);
}
else {
url = util.format(this.getAgentTicketUrl, accessToken.getAccessToken);
}
let data = yield kits_1.HttpKit.getHttpDelegate.httpGet(url);
if (data) {
data = JSON.stringify(data);
let jsTicket = new JsTicket_1.JsTicket(data);
let cache = accesstoken_1.QyApiConfigKit.getCache;
cache.set(key, jsTicket.getCacheJson);
if (accesstoken_1.QyApiConfigKit.isDevMode()) {
console.debug('通过接口获取api_ticket...');
}
return jsTicket;
}
});
}
}
exports.QyJsTicketApi = QyJsTicketApi;
QyJsTicketApi.getCorpTicketUrl = 'https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=%s';
QyJsTicketApi.getAgentTicketUrl = 'https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=%s&type=agent_config';
//# sourceMappingURL=QyJsTicketApi.js.map