UNPKG

coa-allin-pay

Version:
393 lines (392 loc) 19.9 kB
import { AllinPayService } from '../libs/AllinPayService'; import { AllinPay } from '../typings'; /** * 订单接口 * 商户业务系统需将业务订单与支付订单(通商云)以分层的方式处理,即在业务订单需支付时才向通商云请求订单申请 * (1) 可实现业务系统商品订单用户支付失败时,可以再次对商品订单发起支付; * (2) 可实现业务系统商品订单的自定义有效期;通商云未支付的订单,每天日终(00:30)批量关闭已创建未支付,且创建时间大于 24 小时的订单。 * (3) 可实现业务系统商品订单多次多笔支付。 * (4) 避免渠道端因支付时效控制关闭支付订单后,影响原业务订单的支付。 * (5) 为提升客户订单交易安全性,确保平台业务合理性,对会员订单(含订单状态成功及进行中)频次进行控制 * A-每个个人会员(或企业会员)调用“充值”接口单日限制 10 笔; * B-每个个人会员(或企业会员)作为付款人调用“消费”接口单日限制 10 笔; * C-每个个人会员(或企业会员)作为付款人调用“托管代收”接口单日限制 10 笔。 * (6) 订单金额 amount 支持最大金额-9223372036854775807 单位分 * (7) 收银宝 POS 当面付查询模式(支付方式 ORDER_VSPPAY),支持订单申请时上送“summary 摘要”在 POS 机保留字段显示。 *— */ export declare class AllinPayOrderService extends AllinPayService { /** * 消费申请(微信小程序) * 1) 消费申请接口请求响应成功后,根据支付方式确认是否调用“支付确认”接口 * 2) 可支持 B2C 商户自营商品的消费收款,收款人为:#yunBizUserId_B2C# * 3) 收款方需实名才能收款,个人会员需实名认证,企业会员需审核通过; * @param payerId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param bizOrderNo 商户订单号(支付订单) * @param amount 订单金额 * @param openId 微信小程序的openId * @param summary 订单摘要信息 */ consumeApplyWxa(bizOrderNo: string, payerId: string, openId: string, amount: number, summary?: string): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; }>; /** * 消费申请(服务商微信小程序) * @param payerId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param bizOrderNo 商户订单号(支付订单) * @param amount 订单金额 * @param openId 微信小程序的openId * @param summary 摘要 */ consumeApplyWxaIsv(bizOrderNo: string, payerId: string, openId: string, amount: number, summary?: string): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; }>; /** * 消费申请(收银宝H5集团模式) * @param payerId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param recieverId 收款方商户系统用户标识,商户系统中唯一编号。 * @param bizOrderNo 商户订单号(支付订单) * @param amount 订单金额 * @param goodsName 商品名称 * @param summary 摘要 * @param extendOption 扩展配置 * @param extendParams 扩展参数 */ consumeApplyH5VspOrg(bizOrderNo: string, payerId: string, recieverId: string, amount: number, goodsName: string, summary?: string, extendOption?: { [key: string]: any; }, extendParams?: { frontUrl?: string; }): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; }>; /** * 消费申请(通联通集团模式) * @param bizOrderNo 商户订单号(支付订单) * @param payerId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param recieverId 收款方商户系统用户标识,商户系统中唯一编号。 * @param openId 微信小程序的openId * @param amount 订单金额 * @param fee 手续费 * @param goodsName 商品名称 * @param splitRule 分账规则 * @param summary 摘要 * @param extendOption 扩展配置 * @param extendParams 扩展参数 */ consumeApplyWxaOrg(bizOrderNo: string, payerId: string, recieverId: string, openId: string, amount: number, fee: number, goodsName: string, splitRule: AllinPay.SplitRuleItem[], summary?: string, extendOption?: { [key: string]: any; }, extendParams?: { frontUrl?: string; }): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; }>; consumeApplyCashierOrg(bizOrderNo: string, payerId: string, recieverId: string, openId: string, amount: number, fee: number, goodsName: string, splitRule: AllinPay.SplitRuleItem[], summary?: string, extendOption?: { [key: string]: any; }, extendParams?: { frontUrl?: string; }): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; miniprogramPayInfo_VSP: Record<string, any>; }>; /** * 消费申请(H5通联通集团模式) * @param bizOrderNo 商户订单号(支付订单) * @param payerId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param recieverId 收款方商户系统用户标识,商户系统中唯一编号。 * @param openId 微信公众号的openId * @param amount 订单金额 * @param fee 手续费 * @param goodsName 商品名称 * @param splitRule 分账规则 * @param summary 摘要 * @param extendOption 扩展配置 * @param extendParams 扩展参数 */ consumeApplyWxbOrg(bizOrderNo: string, payerId: string, recieverId: string, openId: string, amount: number, fee: number, goodsName: string, splitRule: AllinPay.SplitRuleItem[], summary?: string, extendOption?: { [key: string]: any; }, extendParams?: { frontUrl?: string; }): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; }>; /** * 消费申请(账户内转账) * @param payerId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param recieverId 收款方商户系统用户标识,商户系统中唯一编号。 * @param bizOrderNo 商户订单号(支付订单) * @param amount 订单金额 * @param summary 摘要 */ consumeApplyInternalTransfer(bizOrderNo: string, payerId: string, recieverId: string, amount: number, summary?: string): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; }>; /** * 重发短信验证码 * @param bizOrderNo 商户订单号(支付订单) */ resendPaySMS(bizOrderNo: string): Promise<any>; /** * 确认支付(短信验证码确认) * @param bizOrderNo 商户订单号(支付订单) * @param bizUserId 商户系统用户标识,商户系统中唯一编号。 * @param verificationCode 短信验证码 */ pay(bizOrderNo: string, bizUserId: string, verificationCode: string): Promise<any>; /** * 托管代收申请(通联通集团模式) * @param bizOrderNo 商户订单号(支付订单) * @param payerId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param recieverList 收款列表 * @param openId 微信公众号的openId * @param amount 订单金额 * @param fee 手续费 * @param goodsName 商品名称 * @param summary 摘要 * @param extendOption 扩展配置 * @param extendParams 扩展参数 */ agentCollectApplyWxaOrg(bizOrderNo: string, payerId: string, recieverList: AllinPay.RecieverListItem[], openId: string, amount: number, fee: number, goodsName: string, summary?: string, extendOption?: { [key: string]: any; }, extendParams?: { frontUrl?: string; }): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; }>; agentCollectApplyCashierOrg(bizOrderNo: string, payerId: string, recieverList: AllinPay.RecieverListItem[], openId: string, amount: number, fee: number, goodsName: string, summary?: string, extendOption?: { [key: string]: any; }, extendParams?: { frontUrl?: string; }): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; miniprogramPayInfo_VSP: Record<string, any>; }>; /** * 托管代收申请(H5通联通集团模式) * @param bizOrderNo 商户订单号(支付订单) * @param payerId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param recieverList 收款列表 * @param openId 微信公众号的openId * @param amount 订单金额 * @param fee 手续费 * @param goodsName 商品名称 * @param summary 摘要 * @param extendOption 扩展配置 * @param extendParams 扩展参数 */ agentCollectApplyWxbOrg(bizOrderNo: string, payerId: string, recieverList: AllinPay.RecieverListItem[], openId: string, amount: number, fee: number, goodsName: string, summary?: string, extendOption?: { [key: string]: any; }, extendParams?: { frontUrl?: string; }): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; payStatus: 'success' | 'pending'; payInfo: Record<string, any>; }>; /** * 批量托管代付 * @param bizBatchNo 商户批次号 * @param batchPayList 批量代付列表 */ batchAgentPay(bizBatchNo: string, batchPayList: AllinPay.BatchPayListItem[]): Promise<{ bizBatchNo: string; }>; /** * 查询订单状态 * @param bizOrderNo 商户订单号(支付订单) */ getOrderDetail(bizOrderNo: string): Promise<AllinPay.OrderDetail>; /** * 查询付款方资金代付明细 * @param bizOrderNo 商户订单号(托管代收订单号) */ getPaymentInformationDetail(bizOrderNo: string): Promise<AllinPay.PaymentInformationDetail>; /** * 退款申请 * 1) 支持充值、消费、托管代收(未代付、已代付)、平台转账订单发起退款。 * 2) 支持个人会员、企业会员相关订单的退款,不支持平台发起订单的退款。 * 3) 发起退款时,请确保退款账户(原订单收款账户)中有足够的可用余额;支持全额退款、部分金额退款,但 退款金额不得超过原订单金额。 * 4) 渠道支持退款则退款金额原路返回,可通过字段“refundType 退款方式”指定退款向支付渠道发起时间。 * 5) 不支持通过 SOA 接口发起退款的支付方式:收银宝订单 POS,收银宝当面付;需通过 POS 终端或当面付公众 号内发起退款,系统后台根据终端创建订单后通过“当面付标准模式支付及收银宝 POS 订单支付订单补登” 接口返回商户。查询模式的充值、消费订单支持全额退款和部分退款;托收订单不支持部分退款,仅支持全 额退款; * 6) 仅支持退款至余额的支付方式:POS 支付-实名付、山东代收。 * 7) 原订单支付方式包含代金券的,将代金券金额原路退回至平台营销账户/平台保证金账户。 * 8) 原订单有分账的也支持退款,但需要原订单收款方承担分账资金。 * 9) 原订单支付收取了手续费的,支持手续费全额退款、部分金额退款、不退款,通过 feeAmount 参数定义。 * 10) 原订单使用组合支付的,先做渠道退款,再做余额退款。 * 11) 退款时 amount 是本次退款总金额,feeAmount 是平台需支付的手续费退款金额 A-平台不退手续费,退款 amount 需小于等于原支付单的 amount 减去 fee 的值;feeAmount 不填 B-平台退手续费,退款 amount 需小于等于原支付单的 amount,退款时 feeAmount 需小于等于原支付单的 fee * @param bizUserId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param bizOrderNo 商户订单号(支付订单) * @param oriBizOrderNo 商户原订单号(需要退款的原交易订单号) * @param amount 订单金额 * @param feeAmount 手续费退款金额 * @param type 退款类型 trade_refund transfer_refund */ /** * 交易退款 * @param bizOrderNo 商户订单号(支付订单) * @param oriBizOrderNo 商户原订单号(需要退款的原交易订单号) * @param bizUserId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param refundList 收款人的退款金额 * @param amount 订单金额 * @param feeAmount 手续费退款金额 */ trade_refund(bizOrderNo: string, oriBizOrderNo: string, bizUserId: string, refundList: Array<{ bizUserId: string; amount: number; }>, amount: number, feeAmount: number): Promise<{ orderNo: string; bizOrderNo: string; payStatus: 'success' | 'pending'; amount: number; }>; trade_splitRefund(bizOrderNo: string, oriBizOrderNo: string, bizUserId: string, orderRefundList: AllinPay.OrderRefundListItem[], amount: number, feeAmount: number): Promise<{ orderNo: string; bizOrderNo: string; payStatus: 'success' | 'pending'; amount: number; }>; /** * 平台转账退款 * @param bizOrderNo 商户订单号(支付订单) * @param oriBizOrderNo 商户原订单号(需要退款的原交易订单号) * @param bizUserId 付款方商户系统用户标识,商户 系统中唯一编号。 * @param amount 订单金额 */ transfer_refund(bizOrderNo: string, oriBizOrderNo: string, bizUserId: string, amount: number): Promise<{ orderNo: string; bizOrderNo: string; payStatus: 'success' | 'pending'; amount: number; }>; /** * 提现申请 * 1. 创建提现订单需要先绑定手机,个人用户还需完成实名认证,企业用户需通过企业信息审核。 * 2. 个人会员只能提现到绑定的银行卡中,设置了安全卡的,只能提现到安全卡中。 * 3. 企业会员提现交易,默认使用企业对公账户。如需提现到个人银行卡,可通过绑定银行卡相关接口绑定个人银行账户,企业会员最多只允许绑定一张法人个人银行卡。 * 4. 如果平台已设置为“必须使用安全卡提现”,则提现银行卡必须为安全卡。 * 5. 提现订单支付成功的条件为:status = OK 且 payStatus = success。 * 企业用户使用绑定的法人个人银行卡提现流程: * 1) 企业信息审核成功。 * 2) 通过请求绑定银行卡接口绑定法人个人银行卡。 * 3) 通过确认绑定银行卡接口完成银行预留手机短信校验,绑卡成功。 * 4) 通过提现申请接口发起提现交易。 * 5) 通过支付确认接口确认提现交易(企业用户请使用【后台+短信验证码验证】方式)。 * 个人用户使用绑定的个人银行卡提现流程: * 1) 通过请求绑定银行卡接口绑定个人银行卡。 * 2) 通过确认绑定银行卡接口完成银行预留手机短信校验,绑卡成功。 * 3) 通过提现申请接口发起提现交易。 * 4) 通过支付确认接口确认提现交易。 * @param bizOrderNo 商户订单号(支付订单) * @param bizUserId 商户系统用户标识,商户系统中唯一编号 * @param subAcctNo 子账户号 * @param bankCardNo 银行卡号 * @param name 姓名 * @param amount 订单金额 * @param fee 手续费 * @param summary 摘要 */ withdrawApplyHT(bizOrderNo: string, bizUserId: string, subAcctNo: string, bankCardNo: string, name: string, amount: number, fee: number, summary?: string): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; accountSetNo: string; withdrawType: string; payStatus: 'success' | 'pending'; payInfo: string; }>; withdrawApplyTLT(bizOrderNo: string, bizUserId: string, bankCardNo: string, bankCardPro: number, amount: number, fee: number, summary?: string): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; accountSetNo: string; withdrawType: string; payStatus: 'success' | 'pending'; payInfo: string; }>; withdrawApplyTLTPlatform(bizOrderNo: string, bizUserId: string, bankCardNo: string, bankCardPro: number, amount: number, fee: number, summary?: string): Promise<{ bizUserId: string; bizOrderNo: string; orderNo: string; accountSetNo: string; withdrawType: string; payStatus: 'success' | 'pending'; payInfo: string; }>; /** * 平台转账 * 该接口一般用于平台向用户发红包、各类代金券、体验金、购物返利等营销活动。 * 1. 目前只支持从平台标准余额账户集、保证金账户、营销专用账户、预付卡账户集和自定义 A 帐户转账到用户托管账户余额。 * 2. 源帐户集:标准余额账户集、平台保证金账户、营销专用账户、预付卡账户集和自定义 A 帐户所属的账户集。 * 3. 目标账户集:通商云分配给业务端的托管专用账户集。 * 4. 平台转账无需支付确认,无异步通知。 * @param bizTransferNo 商户系统转账订单号,商户系统唯一 * @param targetBizUserId 目标商户系统用户标识,商户系统中唯一编号。 * @param amount 金额 */ applicationTransfer(bizTransferNo: string, targetBizUserId: string, amount: number): Promise<{ transferNo: string; bizTransferNo: string; amount: number; sourceAccountSetNo: string; targetAccountSetNo: string; }>; /** * 查询用户账户余额 * @param bizUserId */ queryBalance(bizUserId: string): Promise<{ allAmount: number; freezenAmount: number; }>; /** * 查询用户账户收支明细 * 返回明细以时间倒序排列 * @param bizUserId 商户系统用户标识,商户系统中唯一编号。 * @param dateStart 开始日期 * @param dateEnd 结束日期 最多允许查1个月内,跨度建议不超过7天 * @param startPosition 起始位置,取值>0 eg:查询第 11 条到 20 条的 记录(start =11) * @param queryNum 查询条数,eg:查询第 11 条到 20 条的 记录(queryNum =10), 查询条数最多 5000 */ queryInExpDetail(bizUserId: string, dateStart: string, dateEnd: string, startPosition?: number, queryNum?: number): Promise<{ totalNum: string; inExpDetail: AllinPay.InExpDetail[]; bizUserId: string; }>; }