银联商务大华捷通C扫B支付商户接入接口文档

专业的综合支付与信息服务提供商,提供丰富的支付+行业解决方案,满足各合作伙伴对支付服务的多样场景化需求。
1.本文档下述每个接口的应答报文里errCode字段为系统应答码,status字段为交易状态码
2.商户需自行生成billNo。此时billNo需要符合银商规范,以银商分配的4位系统编号作为订单号的前4位,且在商户系统中此订单号保证唯一。总长度需大于6位,小于32位。
3.测试环境接口地址:https://dhjt-uat.chinaums.com/queryService/UmsWebPayPlugins
4.生产环境接口地址:https://生产域名/queryService/UmsWebPayPlugins (交易请在测试环境验收完成后,再调用生产环境)
5.请求参数使用URLEncode进行URL编码后再进行传递,防止出现乱码问题

支付下单接口

参数名称 参数说明 参数类型 长度 是否必须 备注
version 版本号 字符串 8 固定值:20191031
msgId 消息ID 字符串 4 固定值:4217
msgType 消息类型 字符串 1..64 值为bills.getQRCode为获取二维码业务
值为sms.pay为短信收款业务
requestTimestamp 时间戳 字符串 19 报文请求时间,格式yyyy-MM-dd HH:mm:ss
expireTime 账单过期时间 字符串 19 一次性二维码的默认过期时间为30分钟,
最长时间为90天,超过90天按90天处理)
格式yyyy-MM-dd HH:mm:ss
orderType 订单类型 字符串 2 02快速签单05拆分支付订单
mid 商户号 字符串 15
tid 终端号 字符串 8
instMid 业务类型 字符串 1..32 固定值:QRPAYDEFAULT
billNo 商户订单号 字符串 6..32 商户自行生成(鼠标单击查看说明)
参数名称写merOrderId也支持
busiOrderId 商户业务订单号 字符串 32
billDate 商户订单日期 字符串 10 格式yyyy-MM-dd
billDesc 账单描述 字符串 200 不超过100个汉字
参数名称传orderDesc也支持
originalAmount 订单原始金额,单位分 数字 10 前端系统打折前的金额
totalAmount 支付总金额,单位分 数字 10
attachedData 商户附加数据 字符串 200
memberId 会员号 字符串 32 支付通知里原样返回
counterNo 桌号、柜台号、房间号 字符串 32 支付通知里原样返回
employeeNo 操作员工号 字符串 10 支付通知里原样返回
notifyUrl 支付结果通知地址 字符串 200 异步往该地址发送支付结果通知
returnUrl 回跳地址 字符串 200 支付完成后将回跳该地址
divisionFlag 分账标记 Boolean 5 默认false,传入true时subOrders和platformAmount不能为空
goods goodsId 商品ID 字符串 商品对象集合转成的json格式数据:List转成JSONArray
goodsName 商品名称 字符串
quantity 商品数量 字符串
price 商品单价(分) 字符串
goodsCategory 商品分类 字符串
body 商品说明 字符串
subMerchantId 子商户号 字符串
merOrderId 商户子订单号,规则与商户订单号一致:msgId开头,不得超过30位 字符串 30
subOrderAmount 子商户商品总额 字符串
subOrders mid 子商户号 字符串 15 没有分账交易。不需要传递(鼠标单击查看说明)
totalAmount 子商户号所得金额(分) 数字 10
platformAmount 平台商户分账金额 数字 10 与subOrders配合使用
signType 签名算法 字符串 10 支持SM3(推荐),SHA256,不传默认SM3
secureTransaction 担保交易标识 Boolean 5 true/false
walletOption 钱包选项 String 10 说明:1.单一钱包支付传SINGLE, 多钱包支付传MULTIPLE
installmentNumber 花呗分期数 String 10 仅支持支付宝,可分为6或12期
asynDivisionFlag 异步分账标记 Boolean 50 取值:true或false,默认false
若为true,则goods字段和subOrders字段不能同时为空;
且secureTransaction字段上送false或不上送。
退货订单不允许做子订单操作
已确认的子订单,不允许隔天再确认
limitCreditCard 是否需要限制信用卡支付 Boolean 50 取值:true或false,默认false
fixBuyer 是否需要实名认证 字符串 0..32 如果需要生成实名认证,才需要传递
微信必传name、certNo和fixBuyer=T;
支付宝必传name、certType、certNo和fixBuyer=T。
注意证件类型:微信暂时只支持身份证IDENTITY_CARD,
支付宝支持身份证IDENTITY_CARD、 护照PASSPORT、
军官证OFFICER_CARD、士兵证SOLDIER_CARD、
户口本HOKOU"
敏感信息 如姓名、证件号和手机号信息需要 Base64进行加密传输。
(鼠标单击查看说明)
name 实名认证姓名 字符串 0..50
mobile 实名认证手机号 字符串 0..50
certType 实名认证证件类型 字符串 0..50
certNo 实名认证证件号 字符串 0..50
issueInvoice 开具发票 字符串 4000
普通开票的需求(鼠标单击查看说明)
开票文档地址:银联商务发票服务平台标准接口文档v6.4

乐企联用开票的需求(鼠标单击查看说明)
乐企联用开票文档地址:银联商务发票(乐企)服务平台标准接口文档v2.2
issueType 开具发票渠道 字符串 5 普通开票,此处不传值
乐企联用开票,此处传lq
issueServiceName 乐企开票业务类型 字符串 50 此处是配合乐企开票使用,普通开票无需关注此处
不传默认是lqpt.jointIssue
乐企联用开票,5.3开具发票(乐企联用),此处传lqpt.jointIssue
乐企联用开票,6.2生成开票二维码,此处传lqpt.getQrCode
areaRoute 地区码 字符串 50
extend1 扩展字段1 字符串 50 短信收款业务extend1传递接收短信的手机号,
不传入,不会发送短信,
传入了手机号,下单应答会额外加上两个参数sendMsgCode和sendMsgDesc,
其中sendMsgCode=00000表示发送成功
extend2 扩展字段2 字符串 50
extend3 扩展字段3 字符串 50
extend4 扩展字段4 字符串 50
sign 签名 字符串 64 签名规则(鼠标单击查看说明)
扫码付后台模式对接,下单接口会同步返回JSON格式的字符串,下单成功后,商户根据二维码URL生成二维码,供付款人扫码支付
如有分账需求
需要传subOrders,分账信息则严格按subOrders里的分账方案生成。 subOrders的子商户号,子商户分账金额必传,即subOrders每个元素的mid和totalAmount非 空 且 mid不超过20个。(分账方案subOrders里子商户分账总额+platformAmount要与支付 总额totalAmount相等)
签名规则
1.签名支持SM3(推荐)和SHA256方式(不上送signType字段时,默认是以SM3),计算sign的输入数据为待签名字符串加上key(即:签名密钥),key由大华捷通平台分配。
2.在请求参数列表中,除去sign和空值的参数外,其他需要使用到的参数均为要签名的参数

生成待签名字符串
第一步:设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

特别注意以下重要规则:
(1).参数名ASCII码从小到大排序(字典序);
(2).如果参数的值为空不参与签名;
(3).参数名区分大小写;
(4).验证调用返回时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
(5).大华捷通平台接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步:在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行SHA256运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。

支付下单应答

参数名称 参数说明 参数类型 长度 是否必须 备注
version 版本号 字符串 10 固定值:20191031
errCode 平台错误码 字符串 64 取值参考下面说明
errMsg 平台错误描述 字符串 255 错误描述
responseTimestamp 时间戳 字符串 19 响应时间,格式yyyy-MM-dd HH:mm:ss
billQRCode 账单二维码 字符串 300 二维码URL
msgType 消息类型 字符串 1..64 原样返回
billNo 商户订单号 字符串 6..32 原样返回
billDate 账单日期 字符串 10 原样返回
mid 商户号 字符串 15 原样返回
tid 终端号 字符串 8 原样返回
instMid 业务类型 字符串 20 原样返回
employeeNo 操作员工号 字符串 30 原样返回
attachedData 商户附加数据 字符串 200 原样返回
originalAmount 订单原始金额,单位分 数字 10 原样返回
totalAmount 支付总金额,单位分 数字 10 原样返回
platformAmount 平台商户分账金额 数字 10 原样返回
subOrders 分账明细 字符串 10 原样返回
signType 签名算法 字符串 10 原样返回
extend1 扩展字段1 字符串 50 原样返回
extend2 扩展字段2 字符串 50 原样返回
extend3 扩展字段3 字符串 50 原样返回
extend4 扩展字段4 字符串 50 原样返回
sign 签名 字符串 64 签名规则(鼠标单击查看说明)

同步返回商户系统

参数名称 参数说明 参数类型 长度 是否必须 备注
billQRCode 账单二维码 字符串 300
createTime 账单创建时间 字符串 19 格式yyyy-MM-dd HH:mm:ss
billStatus 账单状态 String 30 PAID、UNPAID、REFUND、CLOSED、UNKNOWN
billDesc 账单描述 字符串 200
memberId 会员号 String 15
counterNo 桌号、柜台号、房间号 String 15
merName 商户名称 字符串 100
memo 付款附言 字符串 50
billPayment billBizType 账单业务类型 字符串 50
invoiceAmount 开票金额 Number 50
merOrderId 商户订单号 String 50
paySeqId 交易参考号 String 50
totalAmount 账单流水总金额 Number 50
buyerPayAmount 实付金额 Number 50
couponAmount 钱包折扣金额 Number 50
discountAmount 折扣金额 Number 50
buyerId 买家ID String 50
buyerUsername 买家用户名 String 50
payDetail 支付详情 String 50
payTime 支付时间 String 格式yyyy-MM-dd HH:mm:ss
settleDate 结算时间 String 格式yyyy-MM-dd
status 交易状态 String 50
targetOrderId 目标平台单号 String 50
targetSys 目标系统 String 50
msgType 消息类型 字符串 1..64 原样返回
billNo 商户订单号 字符串 6..32 原样返回
billDate 账单日期 字符串 10 原样返回
mid 商户号 字符串 15 原样返回
tid 终端号 字符串 8 原样返回
instMid 业务类型 字符串 20 原样返回
employeeNo 操作员工号 字符串 30 原样返回
attachedData 商户附加数据 字符串 200 原样返回
originalAmount 订单原始金额,单位分 数字 10 原样返回
totalAmount 支付总金额,单位分 数字 10 原样返回
platformAmount 平台商户分账金额 数字 10 原样返回
subOrders 分账明细 字符串 10 原样返回
signType 签名算法 字符串 10 原样返回
extend1 扩展字段1 字符串 50 原样返回
extend2 扩展字段2 字符串 50 原样返回
extend3 扩展字段3 字符串 50 原样返回
extend4 扩展字段4 字符串 50 原样返回
sign 签名 字符串 64 签名规则(鼠标单击查看说明)

异步推送支付通知

异步推送是服务器端对接时,支付完成后,大华捷通服务器收到渠道方返回的支付通知后,会进行通知给商户,商户收到响应后,需要在超时时间内做出应答,大华捷通再未收到应答或者应答不是SUCCESS时,会多次进行推送, 商户需要做好同一个订单可能会推送多次情况的处理。为了安全,在推送的参数中,可能会随机添加新的参数,商户端接口必须要支持新增参数,不能因为新增参数而导致通知失败
异步推送签名信息进行验证,验证规则如下:
1.签名支持SM3(推荐)和SHA256方式(不上送signType字段时,SM3),计算sign的输入数据为待签名字符串加上key(即:签名密钥),key由大华捷通平台分配。
2.在请求参数列表中,除去sign和空值的参数外,其他需要使用到的参数均为要签名的参数

生成待签名字符串
第一步:设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

特别注意以下重要规则:
(1).参数名ASCII码从小到大排序(字典序);
(2).如果参数的值为空不参与签名;
(3).参数名区分大小写;
(4).验证调用返回时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
(5).大华捷通平台接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步:在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行SHA256运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
参数名称 参数说明 参数类型 长度 是否必须 备注
billQRCode 账单二维码 字符串 300
createTime 账单创建时间 字符串 19 格式yyyy-MM-dd HH:mm:ss
billStatus 账单状态 String 30 PAID、UNPAID、REFUND、CLOSED、UNKNOWN
billDesc 账单描述 字符串 200
memberId 会员号 String 15
counterNo 桌号、柜台号、房间号 String 15
merName 商户名称 字符串 100
memo 付款附言 字符串 50
billPayment billBizType 账单业务类型 字符串 50
invoiceAmount 开票金额 Number 50
merOrderId 商户订单号 String 50
paySeqId 交易参考号 String 50
totalAmount 账单流水总金额 Number 50
buyerPayAmount 实付金额 Number 50
couponAmount 钱包折扣金额 Number 50
discountAmount 折扣金额 Number 50
buyerId 买家ID String 50
buyerUsername 买家用户名 String 50
payDetail 支付详情 String 50
payTime 支付时间 String 格式yyyy-MM-dd HH:mm:ss
settleDate 结算时间 String 格式yyyy-MM-dd
status 交易状态 String 50
targetOrderId 目标平台单号 String 50
targetSys 目标系统 String 50
bankInfo 支付银行信息 字符串
bankCardNo 支付卡信息 字符串 50
seqId 系统交易流水号 字符串 50
receiptAmount 实收金额 Number 50
couponMerchantContribute 商户出资优惠金额 Number 50
couponOtherContribute 其他出资优惠金额 Number 50
activityIds 微信活动ID Number 50
refundAmount 退款金额 Number 50
refundDesc 退款说明 String 50
qrCodeUrl 开票二维码地址 字符串 256 乐企联动开票,此处会返回6.2生成开票二维码的开票地址
billNo 商户订单号 字符串 6..32 原样返回
billDate 账单日期 字符串 10 原样返回
mid 商户号 字符串 15 原样返回
tid 终端号 字符串 8 原样返回
instMid 业务类型 字符串 20 原样返回
employeeNo 操作员工号 字符串 30 原样返回
attachedData 商户附加数据 字符串 200 原样返回
originalAmount 订单原始金额,单位分 数字 10 原样返回
totalAmount 支付总金额,单位分 数字 10 原样返回
platformAmount 平台商户分账金额 数字 10 原样返回
subOrders 分账明细 字符串 10 原样返回
signType 签名算法 字符串 10 原样返回
extend1 扩展字段1 字符串 50 原样返回
extend2 扩展字段2 字符串 50 原样返回
extend3 扩展字段3 字符串 50 原样返回
extend4 扩展字段4 字符串 50 原样返回
sign 签名 字符串 64 签名规则(鼠标单击查看说明)