@tnwx/wxmp
Version:
TNWX 微信系开发脚手架之极速开发微信公众号
575 lines • 24.3 kB
JavaScript
"use strict";
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");
/**
* @author Javen
* @copyright javendev@126.com
* @description 微信卡券相关接口
*/
class CardApi {
/**
* 创建会员卡接口
* @param jsonStr
* @param accessToken
*/
static create(jsonStr, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.cardCreateUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, jsonStr);
});
}
/**
* 设置买单接口
* @param cardId
* @param isOpen
* @param accessToken
*/
static setPayCell(cardId, isOpen, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.setPayCellUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId,
is_open: isOpen
}));
});
}
/**
* 设置自助核销接口
* @param cardId 卡券ID
* @param isOpen 是否开启自助核销功能,填true/false,默认为false
* @param needVerifyCod 用户核销时是否需要输入验证码, 填true/false, 默认为false
* @param needRemarkAmount 用户核销时是否需要备注核销金额, 填true/false, 默认为false
* @param accessToken
*/
static setSelfConsumeCell(cardId, isOpen = false, needVerifyCod = false, needRemarkAmount = false, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.setSelfConsumeCellUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId,
is_open: isOpen,
need_verify_cod: needVerifyCod,
need_remark_amount: needRemarkAmount
}));
});
}
/**
* 创建二维码接口
* @param jsonStr
* @param accessToken
*/
static createQrcodeCard(jsonStr, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.createQrcodeCardUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, jsonStr);
});
}
/**
* 创建货架接口
* @param jsonStr
* @param accessToken
*/
static createLandingPageCard(jsonStr, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.createLandingPageCardUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, jsonStr);
});
}
/**
* 图文消息群发卡券
* @param cardId
* @param accessToken
*/
static getHtmlMpNews(cardId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getHtmlMpNewsUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId
}));
});
}
/**
* 设置测试白名单
* @param jsonStr
* @param accessToken
*/
static setTestWhiteList(jsonStr, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.setTestWhiteListUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, jsonStr);
});
}
/**
* 查询Code接口
* @param code 单张卡券的唯一标准
* @param cardId 卡券ID代表一类卡券。自定义code卡券必填。
* @param checkConsume 是否校验code核销状态
* @param accessToken
*/
static getCode(code, cardId, checkConsume, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
let map = new Map();
map.set('code', code);
if (cardId) {
map.set('card_id', cardId);
}
if (checkConsume) {
map.set('check_consume', checkConsume);
}
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getCodeUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map));
});
}
/**
* 核销Code接口
* @param code 需核销的Code码
* @param cardId 卡券ID。创建卡券时use_custom_code填写true时必填。非自定义Code不必填写。
* @param accessToken
*/
static consume(code, cardId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
let map = new Map();
map.set('code', code);
if (cardId) {
map.set('card_id', cardId);
}
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.consumeCodeUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map));
});
}
/**
* 线上核销Code接口
* @param code 需核销的Code码
* @param openid 当前卡券使用者的openid,通常通过网页授权登录或自定义url跳转参数获得。
* @param accessToken
*/
static consumeOnline(code, openid, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.consumeCodeUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
code: code,
openid: openid
}));
});
}
/**
* Code解码接口
* @param encryptCode 经过加密的Code码
* @param accessToken
*/
static decryptCode(encryptCode, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.decryptCodeUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
encrypt_code: encryptCode
}));
});
}
/**
* 导入自定义code
* @param cardId 需要进行导入code的卡券ID
* @param codeList 需导入微信卡券后台的自定义code,上限为100个。
* @param accessToken
*/
static setDeposit(cardId, codeList, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.setDepositUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId,
code: codeList
}));
});
}
/**
* 查询导入code数目接口
* @param cardId
* @param accessToken
*/
static getDepositCount(cardId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getDepositCountUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId
}));
});
}
/**
* 核查code接口
* @param cardId 进行导入code的卡券ID
* @param codeList 已经微信卡券后台的自定义code,上限为100个
* @param accessToken
*/
static checkCode(cardId, codeList, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.checkCodeUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId,
code: codeList
}));
});
}
/**
* 获取用户已领取卡券接口
* @param openid 需要查询的用户openid
* @param cardId 卡券ID 不填写时默认查询当前appid下的卡券
* @param accessToken
*/
static getUserCardList(openid, cardId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
let map = new Map();
map.set('openid', openid);
if (cardId) {
map.set('card_id', cardId);
}
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getUserCardListUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map));
});
}
/**
* 查看卡券详情
* @param cardId 卡券ID
* @param accessToken
*/
static getCard(cardId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getCardUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId
}));
});
}
/**
* 批量查询卡券列表
* @param offset 查询卡列表的起始偏移量,从0开始,即offset: 5是指从从列表里的第六个开始读取
* @param count 需要查询的卡片的数量(数量最大50)
* @param statusList 支持开发者拉出指定状态的卡券列表
* @param accessToken
*
* “CARD_STATUS_NOT_VERIFY”, 待审核 ;
* “CARD_STATUS_VERIFY_FAIL”, 审核失败;
* “CARD_STATUS_VERIFY_OK”, 通过审核;
* “CARD_STATUS_DELETE”, 卡券被商户删除;
* “CARD_STATUS_DISPATCH”,在公众平台投放过的卡券
*/
static getBatch(offset, count, statusList, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
let map = new Map();
map.set('offset', offset);
map.set('count', count);
if (statusList) {
map.set('status_list', statusList);
}
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getBatchUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map));
});
}
/**
* 更改卡券信息接口
* @param jsonStr
* @param accessToken
*/
static update(jsonStr, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.updateUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, jsonStr);
});
}
/**
* 修改库存接口
* @param cardId 卡券ID
* @param increase 增加多少库存,支持不填或填0
* @param reduce 减少多少库存,可以不填或填0
* @param accessToken
*/
static modifyStock(cardId, increase = 0, reduce = 0, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.modifyStockUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId,
increase_stock_value: increase,
reduce_stock_value: reduce
}));
});
}
/**
* 更改Code接口
* @param code 需变更的Code码
* @param newCode 变更后的有效Code码
* @param cardId 卡券ID。自定义Code码卡券为必填
* @param accessToken
*/
static updateCode(code, newCode, cardId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
let map = new Map();
map.set('code', code);
map.set('new_code', newCode);
if (cardId) {
map.set('card_id', cardId);
}
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.updateCodeUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map));
});
}
/**
* 删除卡券接口
* @param cardId 卡券ID
* @param accessToken
*/
static delete(cardId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.deleteUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
card_id: cardId
}));
});
}
/**
* 设置卡券失效接口
* @param cardId 卡券ID
* @param code 设置失效的Code码
* @param reason 失效理由
* @param accessToken
*/
static unavailable(cardId, code, reason, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!code && !cardId) {
throw new Error('code 与 card_id 不能同时为空');
}
let map = new Map();
if (code)
map.set('code', code);
if (cardId)
map.set('card_id', cardId);
if (reason)
map.set('reason', reason);
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.unavailableUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map));
});
}
/**
* 拉取卡券概况数据接口
* @param beginDate 查询数据的起始时间
* @param endDate 查询数据的截至时间
* @param condSource 卡券来源,0为公众平台创建的卡券数据 、1是API创建的卡券数据
* @param accessToken
*/
static getCardBizUinInfo(beginDate, endDate, condSource = 0, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getCardBizUinInfoUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
begin_date: beginDate,
end_date: endDate,
cond_source: condSource
}));
});
}
/**
* 获取免费券数据接口
* @param beginDate 查询数据的起始时间
* @param endDate 查询数据的截至时间
* @param condSource 卡券来源,0为公众平台创建的卡券数据、1是API创建的卡券数据
* @param cardId 卡券ID 填写后,指定拉出该卡券的相关数据
* @param accessToken
*/
static getFreeCardInfo(beginDate, endDate, condSource = 0, cardId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
let map = new Map();
map.set('begin_date', beginDate);
map.set('end_date', endDate);
map.set('cond_source', condSource);
if (cardId)
map.set('card_id', cardId);
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getFreeCardInfoUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify(map));
});
}
/**
* 创建子商户接口
* @param data
* @param accessToken
*/
static subMerchantSubmit(data, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.subMerchantSubmitUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, data);
});
}
/**
* 更新子商户接口
* @param data
* @param accessToken
*/
static subMerchantUpdate(data, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.subMerchantUpdateUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, data);
});
}
/**
* 拉取单个子商户信息接口
* @param merchantId
* @param accessToken
*/
static getSubMerchant(merchantId, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getSubMerchantUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
merchant_id: merchantId
}));
});
}
/**
* 批量拉取子商户信息接口
* @param beginId 起始的子商户id
* @param limit 拉取的子商户的个数,最大值为100
* @param status 子商户审核状态,填入后,只会拉出当前状态的子商户
* @param accessToken accessToken
*/
static batchGetSubMerchant(beginId, limit, status, accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.batchGetSubMerchantUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpPost(url, JSON.stringify({
begin_id: beginId,
limit: limit > 100 ? 100 : limit,
status: status
}));
});
}
/**
* 卡券开放类目查询接口
* @param accessToken
*/
static getApplyProtocol(accessToken) {
return __awaiter(this, void 0, void 0, function* () {
if (!accessToken) {
accessToken = yield accesstoken_1.AccessTokenApi.getAccessToken();
}
let url = util.format(this.getApplyProtocolUrl, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpGet(url);
});
}
}
exports.CardApi = CardApi;
CardApi.cardCreateUrl = 'https://api.weixin.qq.com/card/create?access_token=%s';
CardApi.setPayCellUrl = 'https://api.weixin.qq.com/card/paycell/set?access_token=%s';
CardApi.setSelfConsumeCellUrl = 'https://api.weixin.qq.com/card/selfconsumecell/set?access_token=%s';
CardApi.createQrcodeCardUrl = 'https://api.weixin.qq.com/card/qrcode/create?access_token=%s';
CardApi.createLandingPageCardUrl = 'https://api.weixin.qq.com/card/landingpage/create?access_token=%s';
CardApi.getHtmlMpNewsUrl = 'https://api.weixin.qq.com/card/mpnews/gethtml?access_token=%s';
CardApi.setTestWhiteListUrl = 'https://api.weixin.qq.com/card/testwhitelist/set?access_token=%s';
CardApi.getCodeUrl = 'https://api.weixin.qq.com/card/code/get?access_token=%s';
CardApi.consumeCodeUrl = 'https://api.weixin.qq.com/card/code/consume?access_token=%s';
CardApi.decryptCodeUrl = 'https://api.weixin.qq.com/card/code/decrypt?access_token=%s';
CardApi.setDepositUrl = 'http://api.weixin.qq.com/card/code/deposit?access_token=%s';
CardApi.getDepositCountUrl = 'http://api.weixin.qq.com/card/code/getdepositcount?access_token=%s';
CardApi.checkCodeUrl = 'http://api.weixin.qq.com/card/code/checkcode?access_token=%s';
CardApi.getUserCardListUrl = 'https://api.weixin.qq.com/card/user/getcardlist?access_token=%s';
CardApi.getCardUrl = 'https://api.weixin.qq.com/card/get?access_token=%s';
CardApi.getBatchUrl = 'https://api.weixin.qq.com/card/batchget?access_token=%s';
CardApi.updateUrl = 'https://api.weixin.qq.com/card/update?access_token=%s';
CardApi.modifyStockUrl = 'https://api.weixin.qq.com/card/modifystock?access_token=%s';
CardApi.updateCodeUrl = 'https://api.weixin.qq.com/card/code/update?access_token=';
CardApi.deleteUrl = 'https://api.weixin.qq.com/card/delete?access_token=%s';
CardApi.unavailableUrl = 'https://api.weixin.qq.com/card/code/unavailable?access_token=%s';
CardApi.getCardBizUinInfoUrl = 'https://api.weixin.qq.com/datacube/getcardbizuininfo?access_token=%s';
CardApi.getFreeCardInfoUrl = 'https://api.weixin.qq.com/datacube/getcardcardinfo?access_token=%s';
CardApi.subMerchantSubmitUrl = 'https://api.weixin.qq.com/card/submerchant/submit?access_token=%s';
CardApi.subMerchantUpdateUrl = 'https://api.weixin.qq.com/card/submerchant/update?access_token=%s';
CardApi.getSubMerchantUrl = 'https://api.weixin.qq.com/card/submerchant/get?access_token=%s';
CardApi.batchGetSubMerchantUrl = 'https://api.weixin.qq.com/card/submerchant/batchget?access_token=%s';
CardApi.getApplyProtocolUrl = 'https://api.weixin.qq.com/card/getapplyprotocol?access_token=%s';
//# sourceMappingURL=CardApi.js.map