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

专业的综合支付与信息服务提供商,提供丰富的支付+行业解决方案,满足各合作伙伴对支付服务的多样场景化需求。
1.签名验签sign的取值参考文档字段备注,errCode取值参考文末说明
2.查询接口属于后台模式对接,商户后台技术人员可以发起http post请求,Content-Type设置为application/x-www-form-urlencoded,字符编码格式使用UTF-8
3.商户需自行生成merOrderId。此订单号保证唯一。总长度需大于6位,小于32位银商的推荐规则为(无特殊情况下,建议遵守此规则):{来源编号(4位)}{时间(yyyyMMddmmHHssSSS)(17位)}{7位随机数}。
4.测试环境接口地址:https://dhjt-uat.chinaums.com/queryService/UmsWebPayPlugins
5.生产环境接口地址:https://生产域名/queryService/UmsWebPayPlugins (交易请在测试环境验收完成后,再调用生产环境)
6.请求参数使用URLEncode进行URL编码后再进行传递,防止出现乱码问题

支付下单接口

参数名称 参数说明 参数类型 长度 是否必须 备注
version 版本号 字符串 8 固定值:20191031
msgType 消息类型 字符串 1..64 pay
requestTimestamp 时间戳 字符串 19 报文请求时间,格式yyyy-MM-dd HH:mm:ss
merOrderId 商户订单号 字符串 6..32 商户订单号 全局唯一,不可重复
orderType 订单类型 字符串 2 02快速签单05拆分支付订单
busiOrderId 商户业务订单号 字符串 32
mid 商户号 字符串 15
tid 终端号 字符串 8
instMid 业务类型 字符串 1..32 固定值:B2CDEFAULT
attachedData 商户附加数据 字符串 200
orderDesc 账单描述 字符串 200
employeeNo 操作员工号 字符串 30
totalAmount 支付总金额,单位分 数字 10
goods goodsId 商品ID 字符串 商品对象集合转成的json格式数据:List转成JSONArray
goods=[ { "body": "two eggs", "discount": "", "goodsCategory": "food meterial", "goodsId": "001", "goodsName": "鸡蛋", "price": "1", "quantity": "10" } ]
goodsName 商品名称 字符串
quantity 商品数量 字符串
price 商品单价(分) 字符串
goodsCategory 商品分类 字符串
body 商品说明 字符串
discount 单位:分 字符串
signType 签名算法 字符串 10 支持SM3(推荐),SHA256,不传默认SM3
limitCreditCard 是否需要限制信用卡支付 Boolean 5 取值: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..32
mobile 实名认证手机号 字符串 0..20
certType 实名认证证件类型 字符串 0..32
certNo 实名认证证件号 字符串 0..32
extend1 扩展字段1 字符串 50
extend2 扩展字段2 字符串 50
extend3 扩展字段3 字符串 50
extend4 扩展字段4 字符串 50
issueInvoice 开具发票 字符串 4000
乐企联用开票的需求(鼠标单击查看说明)
乐企联用开票文档地址:银联商务发票(乐企)服务平台标准接口文档v2.2
issueType 开具发票渠道 字符串 5 乐企联用开票,此处传lq
issueServiceName 乐企开票业务类型 字符串 50 此处是配合乐企开票使用,不传默认是lqpt.jointIssue
乐企联用开票,5.3开具发票(乐企联用),此处传lqpt.jointIssue
乐企联用开票,6.2生成开票二维码,此处传lqpt.getQrCode
bcExtend
(查看说明)
systemTraceNum 系统跟踪号 6位数字 字符串 6
transactionCurrencyCode 交易币种 字符串 6 156
payMode 支付方式 字符串 6 必填,E_CASH – 电 子现金 SOUNDWAVE – 声波 NFC – NFC CODE_SCAN – 扫码 MANUAL – 手 输
payCode 付款码 字符串 6 必填,微信支付宝云闪付的付款码
storeId 门店号 字符串 6 01
bizIdentifier 业务标识 字符串 6 标识接入的具体业务除非特殊说明,一般不需要上送ZZH—准账户模式硬件钱包
goodsTag 商品标识 字符串 6
installmentFlag 字符串 6 分期必填,花呗分期:HBF
installmentNumber 分期期数 字符串 6 花呗分期期数(目前支持支付宝渠道)
retCommParams foodOrderType 扫码点餐字段pre_order 字符串 15 目前支持支付宝渠道,最大长度255位,格式示例:
retCommParams={"foodOrderType":"pre_order","eduSchoolId":"01","eduScene":""}
eduSchoolId 学校内标或者校区ID 数字 10
eduScene 服务场景ID用于支付宝校园内服务场景。教育行业定义的校园内服务场景。例如:校园团餐:SCHOOL_CANTEEN 数字 10
transChnl 交易渠道标识 字符串 6 1-收钱吧
thirdPartyInstalSubsFlag 第三方贴息启用和禁用参数 字符串 6 花呗分期使用
true:启用
false:禁用
如果第三方贴息活动为全场贴息,默认可贴息,传入“false”,则本笔交易禁用三方贴息;
如果第三方贴息活动为指定订单贴息,默认禁用贴息,传入“true”,则本笔交易启用三方贴息
feeRatio 手续费比例 字符串 6 新悦融益业务 该字段必传
costSubsidy 确认成本补贴 字符串 6 新悦融益业务 该字段必传;是否成本补贴,true为不判断手续费比例,false按正常判断,默认false
subAppId subAppId 字符串 6 子商户公众账号ID(微信)
targetChnl 数字货币指定目标渠道 字符串 10 仅限于数字货币使用 取值说明:中总行BOCHO、建行CCBP、工行ICBC
invocationMode 调用方式 字符串 6 默认不传值,为等待支付流程完成才返回;
POLL:轮询模式,即支付渠道响应后立即返回,
若错误代码=PG,表明订单正在支付中,须使用查询接口确认订单状态,
其余错误代码认为失败
pwdEnc 密码(密文) 字符串 6 密码(密文) 中行卡式软钱包(准账户模式钱包)交易必传,SM4加密,透传网付
creditFeeRatio 手续费(贷) 字符串 10
acctAmt 青岛医保预付卡余额 字符串 10
deviceType 设备类型 字符串 2 01:自动柜员机(含ATM和CDM)和多媒体自助终端
02:传统POS
03:mPOS
04:智能POS
05:II型固定电话
06:云闪付终端;
07:保留使用;
08:手机POS;
09:刷脸付终端;
10:条码支付受理终端;
11:条码支付辅助受理终端;
12:行业终端(公交、地铁用于指定行业的终端);
13:MIS终端;
serialNum 终端硬件序列号 字符串 64 长 度 ⇐ 5 0 , 6 位 厂 商 编 号 + 2 位 终 端 类 型 ( 同 设 备 类 型 ) + 4 2 位 自 定 义 序 列 号
encryptRandNum 加 密 随 机 因 子 字符串 64 长 度 ⇐ 1 0 , 取 值 说 明 : 银 行 卡 交 易 采 用 2 域 卡 号 后 6 位 ; 扫 码 付 交 易 采 用 C 2 B 码 后 6 位
secretText 硬 件 序 列 号 密 文 数 据 字符串 8
appVersion app版本 字符串 64
longitude 经度 字符串 64 条件必传,经度 长度⇐10。 实体类终端(设备类型非01,11,12,13):经纬度必传;
非实体类终端(设备类型为01,11,12,13):经纬度与ip字段必传其一。
格式:1位正负号+3位整数+1位小数点+5位小数;
对于正负号:+表示东经,-表示西经。例如-121.48352
latitude 纬度 字符串 64 条件必传,纬度 长度⇐10。 实体类终端(设备类型非01,11,12,13):经纬度必传;
非实体类终端(设备类型为01,11,12,13):经纬度与ip字段必传其一。
networkLicense 终端入网认证编号 字符串 10 长度为5,设备类型为 02、03、04、05、06、08、09 或 10时,选填“终端入网认证编号”,取值说明:银行卡受理终端产品应用认证编号。
该编号由“中国银联标识产品企业资质认证办公室”为通过入网认证的终端进行分配。
银联直连终端必填
location 坐标系 字符串 64 长度⇐10, BD09/GCJ02/WGS84
ip ip 字符串 64 条件必传,终端设备IP地址 长度⇐40。
非实体类终端(设备类型为01,11,12,13):
如无经纬度,该字段必送;格式如:"ip":"172.20.11.089"
sign 签名 字符串 64 签名规则(鼠标单击查看说明)
B扫C支付后台模式对接,下单接口会同步返回JSON格式的字符串,注意:所有的请求参数都需要使用URLEncoder.encode进行编码,字符编码格式是UTF-8,签名时参数值是没有编码的,发送请求时参数值都需要进行编码
签名规则
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 参照errCode取值说明
errMsg 平台错误描述 字符串 255
responseTimestamp 时间戳 字符串 19 响应时间,格式yyyy-MM-dd HH:mm:ss
transactionTime 交易时间 字符串 30 hhmmss 150241
transactionDate 交易日期 格式:MMdd 字符串 30 0719
transactionDateWithYear 交易日期 格式:yyyyMMdd 字符串 30 格式:yyyyMMdd
settlementDate 结算日期 字符串 50 格式:MMdd
settlementDateWithYear 结算日期 字符串 30 格式:yyyyMMdd
retrievalRefNum 检索参考号 字符串 12
totalAmount 订单金额 字符串 1..64 totalAmount(订单金额) = amount(实际支付金额) + totalDiscountAmount 优惠金额(合计)
actualTransactionAmount 营销联盟优惠后交易金额 字符串 6..32 营销联盟优惠后交易金额
amount 实际支付金额 字符串 15 用户实际支付金额,最大长度12位,单位:分
orderId 订单号 字符串 50
marketingAllianceDiscountInstruction 营销联盟优惠说明 字符串 30 微信钱包支付73.02元
thirdPartyDiscountInstruction 第三方优惠说明 数字 10 微信钱包支付73.02元
thirdPartyName 第三方名称 数字 10 微信钱包
thirdPartyBuyerId 第三方买家Id 数字 10 otdJ_uIoiCwFwQ2ocseCtnDOpqjU
thirdPartyBuyerUserName 第三方买家用户名 字符串 10 otdJ_uIoiCwFwQ2ocseCtnDOpqjU
thirdPartyOrderId 第三方订单号 字符串 10 4200066286202307198238072004
thirdPartyPayInformation 第三方支付信息 字符串 30 第三方支付信息 格式为:方式:金额
totalDiscountAmount 优惠金额 字符串 30 (合计) 单位:分
totalDiscountAmount 优惠金额(合计) = eventDiscountAmount(各个渠道方的累加,最多是两个相加,即:ums + 一个渠道方)
discountStatus 优惠状态 字符串 50 1:订单有优惠但未找到 2:订单有优惠且找到
rawPromotionList 渠道和收 单机构侧 原始优惠 信息列表 JSON 2000 支付渠道侧信息 channel_info:
channel_code:支付渠道 名称 (ACP/ALIPAY/WXPAY)
promotion_detail:微信 优惠详情
voucher_detail_list:支 付宝活动优惠详情
discount_goods_detail: 支付宝单品优惠详情
coupon_info:银联活动优 惠详情
dct_goods_info:银联活 单品优惠详情
收单机构侧信息acq_info: acq_code:收单机构名称 (UMS)
coupon_list:优惠详情
promotionList(优惠活动活动列表,数组JSON) channelName 渠道方 字符串 ACP:银联,UMS:银联商务,ALIPAY:支付宝,WXPAY:微信
discountId 优惠流水ID 字符串 最大长度50位
eventNo 活动编号 字符串 最大长度50位
eventName 活动名称 字符串 最大长度64位
discountScope 优惠范围 字符串 GLOBAL –全场代金券SINGLE -单品优惠
discountType 优惠类型 字符串 微信: COUPON - 代金券 DISCOUNT - 优惠券 支付宝: ALIPAY_FIX_VOUCHER - 全 场代金券 ALIPAY_DISCOUNT_VOUCHER - 折扣券 ALIPAY_ITEM_VOUCHER - 单品优惠
eventDiscountAmount 活动优惠金额 数字型 最大长度15位,单位:分
eventDiscountAmount(活动优惠金额) = platformDiscountAmount(平台优惠金额) + merchantDiscountAmount(商户优惠金额) + thirdPartyDiscountAmount (第三方优惠金额)
platformDiscountAmount 平台优惠金额 数字型 最大长度15位,单位:分
merchantDiscountAmount 商户优惠金额 数字型 最大长度15位,单位:分
thirdPartyDiscountAmount 第三方优惠金额 数字型 最大长度15位,单位:分
thirdPartyDiscountDetail 第三方出资详情 字符串
goodsList(单品列表:数组-JSON) goodsId 商品编号 字符串,最大50
discountAmount 商品编号 数字型
goodsNumber 商品数量 数字型
goodsPrice 商品价格 数字型
goodsRemark 商品备注 字符串
cardAttr 卡类型 字符串 50 借记:01 贷记:03 账户余额:91
merchantAllowance 商户让利金额 字符串 50 商户让利金额 单位:分
thirdPartyAllowance 第三方补贴金额 字符串 50 单位:分
thirdPartyPointDiscountAmount 积分抵扣金额 字符串 50 单位:分
installmentNumber 分期期数 字符串 50 花呗分期期数(目前支持支付宝渠道)
installmentSellerPercent 付息方 字符串 50 花呗暂时只支持0/100,100:商家承担
mchntName 商户名称 字符串 50
convMchntNo 转商户商户号 字符串 50
convTermNo 转终端终端号 字符串 50
chnlType 目标渠道类型 字符串 50 目前仅数字货币二维码返回DCEP
promotionAmt 优惠金额 字符串 50 单位为分,目前仅数字货币二维码返回
acqInstCode 受理银行机构代码 字符串 50 详见返回码说明,目前仅数字货币二维码返回
issInstCode 发卡行代码 字符串 50 详见返回码说明,目前仅数字货币二维码返回
bankCardNo 字符串 50 脱敏后的银行卡号 目前仅云闪付返回
queryFlag 字符串 50 查询标志 “Y”表示:订单状态未知,需要终端发起自动查询
thirdPartyDiscountInstrution 第三方优惠说明 字符串 50
userId 买家Id 字符串 50
verifyType 准账户模式 字符串 50 准账户模式硬件钱包验密支付标记 当值为Y表示可发起验密支付
authorizationCode 授权码 字符串 50
upiQrcVoucherNum 付款凭证号 字符串 50 仅适用银联国际二维码
balanceAmtEnc 数币IC余额 字符串 50 余额(密文),仅数字货币IC卡交易返回
sign 签名 字符串 64 签名规则(鼠标单击查看说明)
errCode取值说明
1000 : 认证失败
1001 : 授权失败
9001 : 参数校验失败
9999 : 系统错误
00 : 交易成功
03 : 无效商户
13 : 无效金额
22 : 原交易不存在
25 : 找不到原始交易
30 : 报文格式错误
57 : 不允许此交易
61 : 超出金额限制
64 : 原始金额错误
92 : 发卡方线路异常
94 : 重复交易
96 : 交换中心异常
97 : 终端号未登记
A7 : 安全处理失败
ER : 参见具体返回信息
受理银行机构代码(acqInstCode)和发卡行代码(issInstCode)取值说明
01020000 : 中国工商银行
01030000 : 中国农业银行
01040000 : 中国银行
01050000 : 中国建设银行
03010000 : 中国交通银行
01000000 : 中国邮储银行
设备类型(deviceType)取值说明
01: 自动柜员机(含 ATM 和 CDM)和多媒体自助终端 自动柜员机指专门用于存取现金的电子设备,主要包括ATM、CRS等;多媒体自助终端主要包括自助挂号、自助打印、自助缴费等自助设备。
02: 传统POS 指非安卓系统,具有独立通讯能力,支持银行卡受理功能的设备
04: 智能POS 安卓系统,具有独立通讯能力,支持专属应用加载,支持银行卡受理功能的设备
05: II型固话POS
06: 云闪付终端 支持扫码、非接具有独立通讯功能的设备如扫码非接终端
07: 保留使用
08: 手机POS 基于智能手机,通过软件,将手机化身为POS机,从而实现POS机的所有功能,不需要任何的终端设备
09: 人脸识别终端 具有刷脸支付功能的设备如银商蓝鲸
10: 条码支付受理终端(具备条码受理及交易发起) 条码受理终端指具有独立通讯能力仅支持条码支付的终端。
11: 条码支付辅助受理终端 辅助受理终端指的不具备单独通讯能力的终端如扫描枪、扫码盒子。
12: 行业终端(公交、地铁用于指定行业的终端) 没有行业标准且不支持TUSN的终端如车载、园区等终端
03: MPOS 不具有独立通讯能力,与手机、平板电脑等通用智能设备进行连接,从而实现银行卡支付应用
13: MIS 终端 指非安卓系统, 不具有独立通讯能力,依托上位机通讯,支持银行卡受理功能的设备