coa-dg-pay
Version:
这是一个轻量的汇付支付SDK服务商版 for Node.js
248 lines (247 loc) • 11.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DgPayService = void 0;
const coa_error_1 = require("coa-error");
const coa_helper_1 = require("coa-helper");
const coa_secure_1 = require("coa-secure");
class DgPayService {
constructor(bin) {
this.bin = bin;
this.config = this.bin.config;
}
/**
* 上传图片
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_shtpsc
* @param params
*/
async SupplementaryPicture(params, file) {
return await this.bin.uploadFile('/supplementary/picture', params, file);
}
/**
* 企业商户基本信息入驻
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_qyshjbxxrz
* @param params
*/
async MerchantBasicdataEnt(params) {
return await this.bin.request('/merchant/basicdata/ent', params, { '90000000': true });
}
/**
* 个人商户基本信息入驻
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_qyshjbxxrz
* @param params
*/
async MerchantBasicdataIndv(params) {
return await this.bin.request('/merchant/basicdata/indv', params);
}
/**
* 商户详情信息查询
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_shxxxxcx
* @param params
*/
async MerchantBasicdataQuery(params) {
return await this.bin.request('/merchant/basicdata/query', params);
}
/**
* 商户基本信息修改
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_shxxxxcx
* @param params
*/
async MerchantBasicdataModify(params) {
return await this.bin.request('/merchant/basicdata/modify', params, { '90000000': true });
}
/**
* 商户业务开通
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shywkt/api_shjj_shywkt
* @param params
*/
async MerchantBusiOpen(params) {
return await this.bin.request('/merchant/busi/open', params, { '90000000': true, '99999999': true });
}
/**
* 商户业务修改
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shywkt/api_shjj_shywktxg
* @param params
*/
async MerchantBusiModify(params) {
return await this.bin.request('/merchant/busi/modify', params, { '90000000': true });
}
/**
* 微信商户配置
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_wxshpz
* @param params
*/
async MerchantBusiConfig(params) {
return await this.bin.request('/merchant/busi/config', params);
}
/**
* 微信商户配置查询
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_wxshpzcx
* @param params
*/
async MerchantBusiConfigQuery(params) {
return await this.bin.request('/merchant/busi/config/query', params);
}
/**
* 微信实名认证
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_wxsmrz
* @param params
*/
async MerchantBusiRealname(params) {
return await this.bin.request('/merchant/busi/realname', params);
}
/**
* 微信实名认证状态查询
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_wxshpzcx
* @param params
*/
async MerchantBusiRealnameQuery(params) {
return await this.bin.request('/merchant/busi/realname/query', params);
}
/**
* 聚合正扫
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_wxshpzcx
* @param params
*/
async TradePaymentJspay(params) {
const wx_data = {
sub_appid: params.appWxaId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少huifuId参数'),
openid: params.openId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少openId参数'),
sub_openid: params.openId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少openId参数'),
body: params.goodsDesc || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少goodsDesc参数'),
detail: {
goods_detail: [
{
goods_name: params.goodsDesc,
price: (params.price / 100).toFixed(2) || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少price参数'),
goods_id: coa_secure_1.secure.id25(JSON.stringify(params) + coa_helper_1._.random(0, 1000, false).toString()),
quantity: 1,
},
],
},
};
const res = {
trade_type: params.tradeType || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少tradeType参数'),
req_date: (0, coa_helper_1.dayjs)(coa_helper_1._.now()).format('YYYYMMDD'),
req_seq_id: params.orderId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少orderId参数'),
time_expire: (0, coa_helper_1.dayjs)(coa_helper_1._.now() + 1000 * 15 * 60).format('YYYYMMDDHHmmss'),
huifu_id: params.huifuId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少huifuId参数'),
trans_amt: (params.price / 100).toFixed(2) || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少price参数'),
goods_desc: params.goodsDesc || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少goodsDesc参数'),
wx_data: JSON.stringify(wx_data),
remark: params.remark || '',
notify_url: this.config.notifyUrlMap.jspayNotifyUrl || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少notifyUrl参数'),
};
return await this.bin.request('/trade/payment/jspay', res, { '00000100': true });
}
/**
* 扫码交易查询
* 接口文档地址https://paas.huifu.com/partners/api/#/smzf/api_qrpay_cx
* @param params
*/
async TradePaymentScanpayQuery(params) {
params.huifuId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少huifuId参数');
params.orderId ? (params.orderId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少orderId参数')) : null;
params.orderId ? (params.orgReqDate || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少orgReqDate参数')) : null;
const result = { huifu_id: params.huifuId };
params.orderId ? Object.assign(result, { org_req_date: (0, coa_helper_1.dayjs)(params.orgReqDate).format('YYYYMMDD'), org_req_seq_id: params.orderId }) : result.org_hf_seq_id = params.orgHfSeqId;
return await this.bin.request('/trade/payment/scanpay/query', result, { '23000001': true });
}
/**
* 扫码交易退款
* 接口文档地址https://paas.huifu.com/partners/api/#/smzf/api_qrpay_tk
* @param params
*/
async TradePaymentScanpayRefund(params) {
params.huifuId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少huifuId参数');
params.orderId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少orderId参数');
params.orgReqDate || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少orgReqDate参数');
params.refundId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少refundId参数');
params.refundPrice || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少refundPrice参数');
const result = {
huifu_id: params.huifuId,
req_seq_id: params.refundId,
org_req_seq_id: params.orderId,
ord_amt: (params.refundPrice / 100).toFixed(2),
req_date: (0, coa_helper_1.dayjs)(coa_helper_1._.now()).format('YYYYMMDD'),
org_req_date: (0, coa_helper_1.dayjs)(params.orgReqDate).format('YYYYMMDD'),
notify_url: this.bin.config.notifyUrlMap.refundNotifyUrl,
};
return await this.bin.request('/trade/payment/scanpay/refund', result, { '00000100': true });
}
/**
* 扫码交易退款查询
* 接口文档地址https://paas.huifu.com/partners/api/#/smzf/api_qrpay_tkcx
* @param params
*/
async TradePaymentScanpayRefundquery(params) {
params.huifuId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少huifuId参数');
params.orderRefundId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少orderRefundId参数');
params.orgReqDate || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少orgReqDate参数');
const result = {
huifu_id: params.huifuId,
org_req_seq_id: params.orderRefundId,
org_req_date: (0, coa_helper_1.dayjs)(params.orgReqDate).format('YYYYMMDD'),
};
return await this.bin.request('/trade/payment/scanpay/refundquery', result);
}
/**
* 申请单状态查询
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shywkt/api_shjj_shywkt
* @param params
*/
async MerchantBasicdataStatusQuery(params) {
return await this.bin.request('/merchant/basicdata/status/query', params);
}
/**
* 账户余额查询
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/shjj/api_shjj_sqdztcx
* @param params
*/
async TradeAcctpaymentBalanceQuery(params) {
return await this.bin.request('/trade/acctpayment/balance/query', params);
}
/**
* 财务流水查询
* 接口文档地址https://paas.huifu.com/partners/api/#/yuer/api_acctlscx
* @param params
*/
async TradeAcctpaymentAcctlogQuery(params) {
return await this.bin.request('/trade/acctpayment/acctlog/query', params);
}
/**
* 交易投诉列表
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/tousu/api_shgl_tousu_tscx
* @param params
*/
async GetComplaintList(params) {
return await this.bin.request('/merchant/complaint/list/info/query', params);
}
/**
* 交易投诉列表
* 接口文档地址https://paas.huifu.com/open/doc/api/#/jyjs/qx/api_DMqxedcx
* @param params
*/
async getDmamt(params) {
return await this.bin.request('/trade/settlement/enchashment/dmamt/query', params);
}
/**
* 预下单接口
* 接口文档地址https://paas.huifu.com/partners/api/#/shgl/tousu/api_shgl_tousu_tscx
* @param params
*/
async PaymentPreorder(params) {
const req = {
pre_order_type: '3',
req_date: (0, coa_helper_1.dayjs)(coa_helper_1._.now()).format('YYYYMMDD'),
req_seq_id: params.orderId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少orderId参数'),
miniapp_data: JSON.stringify({ private_info: params.remark || '', }),
huifu_id: params.huifuId || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少huifuId参数'),
checkout_id: this.config.sys_id || coa_error_1.CoaError.message('CoaDgPay.MissingField', 'checkoutId'),
trans_amt: (params.price / 100).toFixed(2) || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少price参数'),
goods_desc: params.goodsDesc || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少goodsDesc参数'),
notify_url: this.config.notifyUrlMap.jspayNotifyUrl || coa_error_1.CoaError.message('CoaDgPay.MissingField', '缺少notifyUrl参数'),
};
return await this.bin.request('/trade/hosting/payment/preorder', req);
}
}
exports.DgPayService = DgPayService;