coa-allin-pay
Version:
通联支付SDK for Node.js
117 lines (116 loc) • 5.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AllinPayMerchantService = void 0;
const coa_error_1 = require("coa-error");
const coa_helper_1 = require("coa-helper");
const AllinPayService_1 = require("../libs/AllinPayService");
/**
* 其它辅助类接口
*/
class AllinPayMerchantService extends AllinPayService_1.AllinPayService {
/**
* 平台头寸查询
* 根据平台商户管理模式不同,支持查询通联通头寸和电子账户头寸
*/
async queryReserveFundBalance() {
const param = { sysid: this.config.sysId, fundAcctSys: 1 };
const result = await this.bin.service_soa('MerchantService', 'queryReserveFundBalance', param);
return coa_helper_1.$.camelCaseKeys(result);
}
/**
* 平台账户集余额查询
* 支持查询平台在通商云系统中各账户集余额
*/
async queryMerchantBalance(accountSetNo = this.config.accountSetNo) {
const param = { accountSetNo };
const result = await this.bin.service_soa('MerchantService', 'queryMerchantBalance', param);
return result;
}
/**
* 银行存管账户余额查询
* 支持平台查询在银行端存管账户的余额;
* 华通存管模式:支持查询平台银行存管账户实时余额;
* 上海银行和招商银行存管模式(金服宝出金):支持查询实时余额和指定日期期末余额;
* @param acctNo 银行账户号
* @param acctName 银行账户名
*/
async queryBankBalance(acctNo, acctName) {
const param = { acctNo, acctName, acctOrgType: 1 };
const result = await this.bin.service_soa('MerchantService', 'queryBankBalance', param);
return result;
}
/**
* 直接查询平台银行存管账户余额查询
*/
async queryBankBalancePlatform() {
const { acctNo, acctName } = this.config.bankAcct;
// 如果银行账户不存在,则返回balance为-1
if (!acctNo)
return { balance: -1 };
const param = { acctNo, acctName, acctOrgType: 1 };
const result = await this.bin.service_soa('MerchantService', 'queryBankBalance', param);
return result;
}
/**
* 商户集合对账文件下载
* 1.接口用于平台通过 http 方式从通商云获取对账文件,供平台进行对账。
* 2.通商云每天上午 8:00 生成前一天的商户对账文件,建议商户 8:30 之后获取。
* 注:
* 1. 对账文件内容:含所有订单及平台转账成功的交易;
* 2. 对账文件名称格式:应用系统编号_yyyyMMdd_allinpay.txt;
* @param date 对账文件日期 yyyyMMdd
* @param fileType 文件类型 1-明细 2-汇总 默认为 1
*/
async getCheckAccountFile(date, fileType) {
const param = { date, fileType };
const result = await this.bin.service_soa('MerchantService', 'getCheckAccountFile', param);
return result;
}
/**
* 应用文件下载
* @param date 文件日期 yyyyMMdd
* @param fileType 文件类型
*/
async getDetailFile(date, fileType) {
const param = { date, fileType };
const result = await this.bin.service_soa('MerchantService', 'getDetailFile', param);
return result;
}
/**
* 电子回单下载
* 通联存管电子回单
* 用于交易完成的订单支持下载电子回单,目前支持的订单: 通联通代付、通联通快捷协议支付、通联通汇入金。
* 电子回单文件名格式:随机token数字.pdf,返回url带token有效期,url仅支持打开一次,若要重复下载需重新请求,且控制同一订单 1 分钟内仅允许请求一次。
* @param bizOrderNo 商户订单号(支付订单)
*/
async eleReceiptDownload(bizOrderNo) {
const param = { bizOrderNo };
const result = await this.bin.service_soa('MerchantService', 'eleReceiptDownload', param);
return result;
}
/**
* 银行头寸调拨
* 针对银行存管,通联出金资金存管模式,需通过银行代付接口功能将银行存管账户资金调拨回通联ACS户,由通联代付渠道实现提现功能。
* @param bizOrderNo 商户订单号(支付订单)
* @param amount 调拨金额
*/
async platformFundTransfer(bizOrderNo, amount) {
const param = {
bizOrderNo,
amount,
payMethod: {
TRANSFER_BANK: {
transferOrgType: 17,
transferAmount: amount,
}
},
backUrl: this.config.notify + 'platform_fund_transfer_pay',
extendInfo: '',
};
const result = await this.bin.service_soa('MerchantService', 'platformFundTransfer', param);
if (result.payStatus === 'fail')
coa_error_1.die.hint('头寸调拨异常:' + result.payFailMessage);
return result;
}
}
exports.AllinPayMerchantService = AllinPayMerchantService;