专业的综合支付与信息服务提供商,提供丰富的支付+行业解决方案,满足各合作伙伴对支付服务的多样场景化需求。
1.本文档下述每个接口的应答报文里errCode字段为系统应答码,status字段为交易状态码
2.商户需自行生成merOrderId。此时merOrderId需要符合银商规范,以银商分配的4位系统编号作为订单号的前4位,且在商户系统中此订单号保证唯一。总长度需大于6位,小于32位。
3.测试环境接口地址:https://dhjt-uat.chinaums.com/queryService/UmsWebPayPlugins
4.生产环境接口地址:https://生产域名/queryService/UmsWebPayPlugins (交易请在测试环境验收完成后,再调用生产环境)
5.本接口为商户的订单H5页面向银商系统发起的支付跳转
6.请求参数使用URLEncode进行URL编码后再进行传递,防止出现乱码问题
参数名称 | 参数说明 | 参数类型 | 长度 | 是否必须 | 备注 | |
---|---|---|---|---|---|---|
version | 版本号 | 字符串 | 8 | 是 | 固定值:20191031 | |
msgId | 消息ID | 字符串 | 4 | 是 | 固定值:10UU | |
msgType | 消息类型 | 字符串 | 1..64 | 否 | (走银联全渠道)固定值:uac.order | |
requestTimestamp | 时间戳 | 字符串 | 19 | 是 | 报文请求时间,格式yyyy-MM-dd HH:mm:ss | |
merOrderId | 商户订单号 | 字符串 | 6..32 | 是 | 商户自行生成(鼠标单击查看说明) | |
expireTime | 订单过期时间 | 字符串 | 19 | 否 | 格式:yyyy-MM-dd HH:mm:ss | |
orderType | 订单类型 | 字符串 | 2 | 否 | 02快速签单05拆分支付订单 | |
mid | 商户号 | 字符串 | 15 | 是 | ||
tid | 终端号 | 字符串 | 8 | 是 | ||
instMid | 业务类型 | 字符串 | 1..32 | 是 | 固定值:UACDEFAULT | |
attachedData | 商户附加数据 | 字符串 | 200 | 否 | 商户附加数据 | |
orderDesc | 账单描述 | 字符串 | 200 | 否 | 账单描述 | |
employeeNo | 操作员工号 | 字符串 | 30 | 否 | ||
originalAmount | 订单原始金额,单位分 | 数字 | 10 | 否 | 前端系统打折前的金额 | |
totalAmount | 支付总金额,单位分 | 数字 | 10 | 是 | ||
divisionFlag | 分账标记 | Boolean | 5 | 否 | 若为true,subOrders和platformAmount字段不能为空; | |
goods | goodsId | 商品ID | 字符串 | 否 | 商品对象集合转成的json格式数据:List |
|
goodsName | 商品名称 | 字符串 | ||||
quantity | 商品数量 | 字符串 | ||||
price | 商品单价(分) | 字符串 | ||||
goodsCategory | 商品分类 | 字符串 | ||||
body | 商品说明 | 字符串 | ||||
subMerchantId | 子商户号 | 字符串 | ||||
merOrderId | 商户子订单号,规则与商户订单号一致:msgId开头,不得超过30位 | 字符串 | 30 | |||
subOrderAmount | 子商户商品总额 | 字符串 | ||||
subOrders | mid | 子商户号 | 字符串 | 15 | 否 | 没有分账交易。不需要传递(鼠标单击查看说明) |
totalAmount | 子商户号所得金额(分) | 数字 | 10 | |||
merOrderId | 商户子订单号 | 字符串 | 6..32 | |||
platformAmount | 平台商户分账金额 | 数字 | 10 | 否 | 与subOrders配合使用 | |
notifyUrl | 支付结果通知地址 | 字符串 | 200 | 否 | 异步往该地址发送支付结果通知 | |
returnUrl | 回跳地址 | 字符串 | 200 | 否 | 支付完成后将回跳该地址 | |
signType | 签名算法 | 字符串 | 10 | 否 | 支持SM3(推荐),SHA256,不传默认SM3 | |
limitCreditCard | 是否需要限制信用卡支付 | Boolean | 5 | 否 | 取值:true或false,默认false | |
transType | 银联网关交易类型 | 字符串 | 50 | 否 | 注意:银联网关交易时需
要填写。
UPG_PERSONAL:个人网关
支付; UPG_PERSONAL_PREAUTH: 个人网关预授权; UPG_BUSINESS:企业网关 支付; |
|
bizType | 银联网关业务种类 | 字符串 | 50 | 否 | 注意:银联网关交易时需要填写。见取值说明 | |
chnlNo | 网关渠道标 识,用来标 识发卡机构 的网关电子 渠道 | 字符串 | 16 | 否 | 注意:银联网关交易时需 要填写。 见取值说明 | |
termType | 银联网关交 易终端类型 | 字符串 | 50 | 否 | 注意:银联网关交易时需
要填写。 电脑:PC 手机:PHONE 其他:OTHERS |
|
chnlType | 银联网关交 易受理渠道 | 字符串 | 50 | 否 | 在终端类型的基础上进一
步明确交易请求发起的受
理渠道。 注意:银联网关 交易时需要填写。 电脑浏览器:PC 手机浏览器:H5 手机APP:APP 其他:OTHERS |
|
fixBuyer | 企业实名认证标记 | 字符串 | 1 | 否 | 默认不实名,T实名认证,F或空不实名 | |
payerAcctNo | 企业账户 | 字符串 | 255 | 否 | Base64编码,企业实名认证时必填。 测试环境可以使用:6221501111111113900 |
|
payerAcctName | 企业名称 | 字符串 | 255 | 否 | Base64编码,企业实名认证时必填。 测试环境可以使用:银联商务股份有限公司1 |
|
payerAcctBank | 企业开户行 | 字符串 | 255 | 否 | Base64编码,企业实名认证时必填。 测试环境可以使用:测试银行1 |
|
issueInvoice | 开具发票 | 字符串 | 4000 | 否 | 如有开具发票的需求(鼠标单击查看说明) 开票文档地址:银联商务发票服务平台标准接口文档v6.4 |
|
extend1 | 扩展字段1 | 字符串 | 50 | 否 | 扩展字段,使用时联调约定 | |
extend2 | 扩展字段2 | 字符串 | 50 | 否 | ||
extend3 | 扩展字段3 | 字符串 | 50 | 否 | ||
extend4 | 扩展字段4 | 字符串 | 50 | 否 | ||
sign | 签名 | 字符串 | 64 | 是 | 签名规则(鼠标单击查看说明) |
网银支付前台跳转模式对接,注意:此处get请求,所有的请求参数都需要使用URLEncoder.encode进行编码,字符编码格式是UTF-8,签名时参数值是没有编码的,发送请求时参数值都需要进行编码
商户订单号merOrderId生成规则
商户需自行生成merOrderId。此时merOrderId需要符合银商规范,以银商分配的4位来源编号(msgId的值)作为订单号的前4位,且在商户系统中此订单号保证唯一。总长度需大于6位,小于32位
签名规则
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 | 版本号 | 字符串 | 8 | 是 | 固定值:20191031 |
msgId | 消息ID | 字符串 | 4 | 是 | 固定值 |
responseTimestamp | 时间戳 | 字符串 | 19 | 是 | 响应时间,格式yyyy-MM-dd HH:mm:ss |
instMid | 业务类型 | 字符串 | 1..32 | 是 | 固定值:UACDEFAULT |
status | 订单状态 | 字符串 | 30 | 否 | 参考取值说明(鼠标单击查看取值说明) |
bankCardNo | 支付银行信息 | 字符串 | 50 | 否 | |
billFunds | 资金渠道 | 字符串 | 50 | 否 | |
billFundsDesc | 资金渠道说明 | 字符串 | 50 | 否 | |
buyerId | 买家ID | 字符串 | 50 | 否 | |
buyerUsername | 买家用户名 | 字符串 | 50 | 否 | |
couponAmount | 网付计算的优惠金额 | 数字(单位:分) | 10 | 否 | |
buyerPayAmount | 实付金额 | 数字(单位:分) | 10 | 否 | |
totalAmount | 订单金额,单位分 | 数字(单位:分) | 10 | 否 | |
invoiceAmount | 开票金额 | 数字(单位:分) | 10 | 否 | |
receiptAmount | 实收金额 | 数字(单位:分) | 10 | 否 | |
payTime | 支付时间 | 字符串 | 19 | 否 | 格式yyyy-MM-dd HH:mm:ss |
refId | 支付银行卡参考号 | 字符串 | 19 | 否 | 格式yyyy-MM-dd HH:mm:ss |
refundAmount | 退款金额 | 数字(单位:分) | 10 | 否 | |
refundDesc | 退款说明 | 字符串 | 19 | 否 | |
seqId | 系统交易流水号 | 字符串 | 30 | 否 | |
settleDate | 结算日期 | 字符串 | 10 | 否 | 格式yyyy-MM-dd |
subBuyerId | 卖家子ID | 字符串 | 30 | 否 | |
targetOrderId | 渠道订单号 | 字符串 | 50 | 否 | |
targetSys | 支付渠道 | 字符串 | 30 | 否 | |
orderDesc | 订单详情 | 字符串 | 30 | 否 | |
queryId | 银联商务大华捷通系统流水号 | 字符串 | 30 | 是 | |
msgType | 消息类型 | 字符串 | 1..64 | 是 | 原样返回 |
merOrderId | 商户订单号 | 字符串 | 6..32 | 是 | 原样返回 |
mid | 商户号 | 字符串 | 15 | 是 | 原样返回 |
tid | 终端号 | 字符串 | 8 | 是 | 原样返回 |
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 | 是 | 签名规则(鼠标单击查看说明) |
1.公众号支付前台跳转模式对接,同步跳转到商户系统,采用get方式跳转(方便vue等前后分离项目获取参数),商户收到跳转请求后,验证签名的规则与支付下单一致,获取全部非空值的参数参与签名,获取到参数需要使用URLDecoder.decode进行解码,字符编码格式是UTF-8,验签时的参数值是解码之后的值
2.根据status参数值判断是否支付成功(此处status并不能作为是否支付的标准,具体支付结果以后台通知为准,商户可以在此处收到status是TRADE_SUCCESS时,使用查询交易结果接口查询交易状态),
status的取值:
(1).NEW_ORDER新订单
(2).TRADE_CLOSED 在指定时间段内未支付时关闭的交易;在交易完成全额退款成功时关闭的交易;支付失败的交易。 TRADE_CLOSED的交易不允许进行任何操作。
(3).WAIT_BUYER_PAY 交易创建,等待买家付款。
(4).TRADE_SUCCESS 支付成功
(5).TRADE_REFUND 订单转入退货流程 退货可能是部分也可能是全部。
(6).UNKNOWN 不明确的交易状态
参数名称 | 参数说明 | 参数类型 | 长度 | 是否必须 | 备注 |
---|---|---|---|---|---|
version | 版本号 | 字符串 | 8 | 是 | 固定值:20191031 |
msgId | 消息ID | 字符串 | 4 | 是 | 固定值 |
responseTimestamp | 时间戳 | 字符串 | 19 | 是 | 响应时间,格式yyyy-MM-dd HH:mm:ss |
instMid | 业务类型 | 字符串 | 1..32 | 是 | 固定值:UACDEFAULT |
status | 订单状态 | 字符串 | 30 | 否 | 参考取值说明(鼠标单击查看取值说明) |
bankCardNo | 支付银行信息 | 字符串 | 50 | 否 | |
bankInfo | 支付银行 | 字符串 | 50 | 否 | |
billFunds | 资金渠道 | 字符串 | 50 | 否 | |
billFundsDesc | 资金渠道说明 | 字符串 | 50 | 否 | |
buyerId | 买家ID | 字符串 | 50 | 否 | |
buyerUsername | 买家用户名 | 字符串 | 50 | 否 | |
couponAmount | 网付计算的优惠金额 | 数字(单位:分) | 10 | 否 | |
buyerPayAmount | 实付金额 | 数字(单位:分) | 10 | 否 | |
totalAmount | 订单金额,单位分 | 数字(单位:分) | 10 | 否 | |
invoiceAmount | 开票金额 | 数字(单位:分) | 10 | 否 | |
receiptAmount | 实收金额 | 数字(单位:分) | 10 | 否 | |
payTime | 支付时间 | 字符串 | 19 | 否 | 格式yyyy-MM-dd HH:mm:ss |
refId | 支付银行卡参考号 | 字符串 | 19 | 否 | 格式yyyy-MM-dd HH:mm:ss |
refundAmount | 退款金额 | 数字(单位:分) | 10 | 否 | |
refundDesc | 退款说明 | 字符串 | 19 | 否 | |
seqId | 系统交易流水号 | 字符串 | 30 | 否 | |
settleDate | 结算日期 | 字符串 | 10 | 否 | 格式yyyy-MM-dd |
subBuyerId | 卖家子ID | 字符串 | 30 | 否 | |
targetOrderId | 渠道订单号 | 字符串 | 50 | 否 | |
targetSys | 支付渠道 | 字符串 | 30 | 否 | |
orderDesc | 订单详情 | 字符串 | 30 | 否 | |
queryId | 银联商务大华捷通系统流水号 | 字符串 | 30 | 是 | |
msgType | 消息类型 | 字符串 | 1..64 | 是 | 原样返回 |
merOrderId | 商户订单号 | 字符串 | 6..32 | 是 | 原样返回 |
mid | 商户号 | 字符串 | 15 | 是 | 原样返回 |
tid | 终端号 | 字符串 | 8 | 是 | 原样返回 |
employeeNo | 操作员工号 | 字符串 | 30 | 否 | 原样返回 |
attachedData | 商户附加数据 | 字符串 | 200 | 否 | 原样返回 |
originalAmount | 订单原始金额,单位分 | 数字 | 10 | 否 | 原样返回 |
totalAmount | 支付总金额,单位分 | 数字 | 10 | 是 | 原样返回 |
platformAmount | 平台商户分账金额 | 数字 | 10 | 否 | 原样返回 |
subOrders | 分账明细 | 字符串 | 10 | 否 | 原样返回 |
signType | 签名算法 | 字符串 | 10 | 是 | 原样返回 |
subOpenId | 付款人openid | 字符串 | 30 | 否 | 原样返回 |
subAppId | 商户微信appId | 字符串 | 30 | 否 | 原样返回 |
extend1 | 扩展字段1 | 字符串 | 50 | 否 | 原样返回 |
extend2 | 扩展字段2 | 字符串 | 50 | 否 | 原样返回 |
extend3 | 扩展字段3 | 字符串 | 50 | 否 | 原样返回 |
extend4 | 扩展字段4 | 字符串 | 50 | 否 | 原样返回 |
sign | 签名 | 字符串 | 64 | 是 | 签名规则(鼠标单击查看说明) |
取值 | 业务种类 | 支付场景 |
---|---|---|
100001 | 虚拟商品购买 | 商户消费 |
100002 | 预付款类账户充值 | 商户消费 |
100003 | 实物消费 | 商户消费 |
100005 | 生活及商业消费服务 | 商户消费 |
100006 | 其他商户消费 | 商户消费 |
110001 | 公共事业缴费 | 公共服务 |
110002 | 教育医疗缴费 | 公共服务 |
110003 | 政府服务缴费 | 公共服务 |
110004 | 公益捐款 | 公共服务 |
110008 | 其他公共服务 | 公共服务 |
120001 | 其他金融付款 | 金融服务 |
120003 | 基金购买 | 金融服务 |
120004 | 保险选购 | 金融服务 |
120005 | 投资理财 | 金融服务 |
120006 | 信贷偿还 | 金融服务 |
120007 | 信用卡还款转出 | 金融服务 |
130001 | 信用卡还款转出 | 账户充值 |
130002 | 信用卡还款转出 | 账户充值 |
130003 | 信用卡还款转出 | 账户充值 |
取值 | 交易类型 | 渠道类型 | 网银业务 | 开通网银业务银行 |
---|---|---|---|---|
04100000001 | 1、全额消费 2、预授权 | PC | 个人网关支付 | 平安银行 |
04100000102 | 1、全额消费 2、预授权 | H5 | 个人网关支付 | 平安银行 |
04100000203 | 1、全额消费 2、预授权 | APP | 个人网关支付 | 平安银行 |
03040000001 | 1、全额消费 2、预授权 | PC | 个人网关支付 | 华夏银行 |
01050000001 | 1、全额消费 | PC | 个人网关支付 | 建设银行 |
03020000001 | 1、全额消费 2、预授权 | PC | 个人网关支付 | 中信银行 |
03020000102 | 1、全额消费 2、预授权 | H5 | 个人网关支付 | 中信银行 |
03020000203 | 1、全额消费 2、预授权 | APP | 个人网关支付 | 中信银行 |
03080000200 | 1、全额消费 | APP | 个人网关支付 | 招商银行 |
取值 | 交易类型 | 渠道类型 | 网银业务 | 开通网银业务银行 |
---|---|---|---|---|
04100001001 | 1.企业网关支付-全额消费 | PC | 企业网关支付 | 平安银行 |
03040001002 | 1.企业网关支付-全额消费 | PC | 企业网关支付 | 华夏银行 |
取值 | 描述 |
---|---|
Alipay 1.0 | 支付宝1.0协议 |
Alipay 2.0 | 支付宝2.0协议 |
WXPay | 微信 |
YQB | 壹钱包 |
QMF | 全民付远程快捷 |
UnionPay | 银联钱包 |
BaiDu | 百度钱包 |
JD | 京东钱包 |
SF | 顺丰顺手付 |
取值 | 描述 |
---|---|
UNKNOWN | 不明确的交易状态,需要调退款查询接口确认退款结果 |
SUCCESS | 退款成功 |
FAIL | 退款失败 |
PROCESSING | 退款处理中,需要调退款查询接口确认退款结果 |
取值 | 描述 |
---|---|
NEW_ORDER | 新订单 |
UNKNOWN | 不明确的交易状态 |
TRADE_CLOSED | 关闭的交易,不允许进行任何操作 |
WAIT_BUYER_PAY | 交易创建,等待买家付款 |
TRADE_SUCCESS | 支付成功 |
TRADE_REFUND | 订单转入退货流程,可能是部分也可能是全部 |