UNPKG

@tnwx/commons

Version:

TTNWX 微信系开发脚手架之公共模块

74 lines 3.33 kB
"use strict"; /** * @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