版本 | 修订人 | 修订说明 | 批准人 | 发布日期 |
V0.1 | 初稿 | 2025-03-06 | ||
V0.2 | 袁豪 | 增加“微信小程序收银台”接口 | 2025-04-16 | |
V0.3 | 袁豪 | 修改“微信/支付宝小程序收银台”接口,同时支持支付宝 | 2025-04-23 | |
V0.4 | 袁豪 | 修改请求头参数 | 2025-04-24 | |
V0.5 | 袁豪 | “交易异步通知”增加字段hmmOrderNo,threeOrderNo; “退款”接口的payWay改为非必填 | 2025-04-27 | |
V0.6 | 袁豪 | 增加“H5收银台”接口 | 2025-06-06 | |
V0.7 | 袁豪 | “H5收银台”接口,请求参数删除“sign”字段 | 2025-07-07 | |
V0.8 | 袁豪 | 删除“下单(c扫b)”接口 | 2025-09-18 | |
V0.9 | 袁豪 | “交易异步通知”接口字段调整 | 2025-10-30 | |
目录
1. 编写目的
2. 业务概述与场景
3. 数据通信方式
3.1. 接入URL
3.2. 通讯方式
4. 数据加密
A 流程:
B 加密签名逻辑
a. 请求对象转JSON字符串并RSA加密,建议使用FASTJSON,如
b. 拼裝http 请求体,如加密对象(Map):
C 签名
D 请求头
E http请求,对返回结果验签,解密
5. 接口说明
1.1. 微信/支付宝小程序收银台
1.2. H5收银台
1.3. 扫码(b扫c)
1.4. 交易查询
1.5. 退款
1.6. 退款查询
1.7. 交易异步通知
6. 字典说明
6.1. 响应码
本文档面向对接“汇买卖”平台的商户/代理商的开发者,为其提供与“汇买卖”平台进行数据交互的标准接口规范。
业务概述与场景
“汇买卖”平台旨为商户提供统一的支付接入服务。其核心作用在于简化支付流程,提升支付效率,优化用户体验,并为商户提供全面的支付解决方案。
采用HTTPS方式通讯。
测试域名:hmpay-test.allintrust.cn/gateway_api/hmpay-ext-api
正式域名:hmpay.allintrust.cn/gateway_api/hmpay-ext-api
具体请求URI参加接口说明,例如:下单URI为/api/omnipay/pay,整个请求地址为:
https://hmpay.allintrust.cn/gateway_api/hmpay-ext-api/api/omnipay/pay
通讯方式
接口支持HTTPS POST方式。具体方式以接口定义为准。
“汇买卖”平台接口接入方式支持 API 方式;API 当前仅支持签名和加密算法均为RSA,请求参数均为JSON格式的POST请求,以下ABCDE为API方式请求简样说明,具体的方法细节参考allintrust-httpdemo。

1. 客户通过“汇买卖”平台的公钥对原始业务参数进行加密生成密文字符串
2. 客户使用自己的私钥对密文字符串+时间戳进行签名
3. 客户构造HTTP加密请求,将所有参数提交到“汇买卖”平台
4. “汇买卖”平台通过客户的公钥对密文字符串+时间戳进行验签
5. “汇买卖”平台通过私钥对密文字符串进行解密,得到原始业务参数
6. “汇买卖”平台通过客户的公钥对返回参数进行加密生成密文字符串
7. “汇买卖”平台通过使用自己的私钥对密文字符串+时间戳进行签名
8. “汇买卖”平台将所有参数返回客户系统
9. 客户通过“汇买卖”平台的公钥对密文字符串+时间戳进行验签
10. 客户通过私钥对密文字符串进行解密,得到返回参数
a.
请求对象转JSON字符串并RSA加密,建议使用FASTJSON,如
Map<String, Object> xtysCommonKeysInfo = new HashMap<>();
xtysCommonKeysInfo.put("name","张三");
xtysCommonKeysInfo.put("creditCode","xxx");
xtysCommonKeysInfo.put("productCode","xxx");
xtysCommonKeysInfo.put("merId","xxx");
xtysCommonKeysInfo.put("timestamp",String.valueOf(System.currentTimeMillis()));
xtysCommonKeysInfo.put("custOrderId", "xxx");
String jsonString = JSON.toJSONString(xtysCommonKeysInfo )
String encryptString = RSA.encrypt(jsonString);//此处具体方法见demo
b.
拼裝http 请求体,如加密对象(Map):
biz_class: 加密串的原始类型
biz_content: 请求对象的RSA加密串
httpStringJson =
{\"biz_class\":\"java.util.Map\",\"biz_content\":\"aFsD6lzm1FqBx9Nsnp9X2Sl0x51XHAXojIHGp8hc1RP92POodan0wOY9uRuNAlBaiC6i8JkwHX/u3mKlo4V+JvRvlib7FhWPj/4ZnS7PHQjFR3PeMH04FJ/oIy/vqjtdRcSyz/mPqNQsVzkNfsl/LYCXUat0H4YMYBOxs4s4HW9Jfiyfv6OuP698rKyyRN7jQgOMHYF6psdbX3QLP/JcJ8Gw7ZbZ17EA6jRuSt/tWPL6RGhCl8jhPlAV4lrZ3NaoOk0fvmIzp6PkpUex7uKep7EV8opVHV9BuYpJXkXNu9MXfavwNpJRp0jAHvmzNpRgh/Nf+SRmraaGMnDFIgS6lQ==\"}
根据 httpStringJson&1579169884169(当前时间时间戳)
signSource =
{\"biz_class\":\"java.util.Map\",\"biz_content\":\"aFsD6lzm1FqBx9Nsnp9X2Sl0x51XHAXojIHGp8hc1RP92POodan0wOY9uRuNAlBaiC6i8JkwHX/u3mKlo4V+JvRvlib7FhWPj/4ZnS7PHQjFR3PeMH04FJ/oIy/vqjtdRcSyz/mPqNQsVzkNfsl/LYCXUat0H4YMYBOxs4s4HW9Jfiyfv6OuP698rKyyRN7jQgOMHYF6psdbX3QLP/JcJ8Gw7ZbZ17EA6jRuSt/tWPL6RGhCl8jhPlAV4lrZ3NaoOk0fvmIzp6PkpUex7uKep7EV8opVHV9BuYpJXkXNu9MXfavwNpJRp0jAHvmzNpRgh/Nf+SRmraaGMnDFIgS6lQ==\"}&1579169884169
sign = RSA.sign(signSource );//此处具体方法见demo
请求名称 | 类型 | 长度 | 是否必填 | 备注 |
x_allintrust_client_type | String | 10 | 是 | API |
x_allintrust_timestamp | String | 32 | 是 | 签名的时间戳:1579169884169 |
x_allintrust_tenant | String | 64 | 否 | tenantId租户ID 对接时提供 |
x_allintrust_app_key | String | 64 | 是 | appKey 对接时提供 |
x_allintrust_key | String | 32 | 是 | merCode对接时提供 |
x_allintrust_prod_code | String | 32 | 是 | hmpay,固定值 |
x_allintrust_sign | String | 256 | 是 | sign |
x_allintrust_nonce | String | 32 | 是 | 唯一标示,防止重复提交 |
Map<String, Object> headers = new HashMap<>(16);
headers.put("x_allintrust_client_type","api");
headers.put("x_allintrust_timestamp", ts);
headers.put("x_allintrust_tenant", tenantId);
headers.put("x_allintrust_app_key", appKey);
headers.put("x_allintrust_key", merCode);
headers.put("x_allintrust_prod_code", prodCode);
headers.put("x_allintrust_sign", sign);
headers.put("x_allintrust_nonce", UUID.randomUUID().toString());
HttpClientUtil.httpPostRequest(serverUrl, headers, httpStringJson);//这里请求体httpStringJson要保持和签名时保持一致
以上所有流程,具体请参考httpdemo,其中商户对接需要交换公私钥,demo提供密钥串生成工具,商户可以自行生成公私钥对,并将公钥提供给”汇买卖”平台,”汇买卖”平台提供给商户”汇买卖”平台的公钥,此过程技术对接阶段可再沟通。
接口说明
请求参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
custCode | 客户编号 | String | 20 | 是 | 线下提供 |
merCode | 商户编号 | String | 20 | 是 | 线下提供 |
orderNo | 调用方订单号 | String | 40 | 是 | 调用方订单号 该订单号需要唯一,最大长度40,只能由数字,大小写字母构成 |
txnAmt | 订单金额 | String | 14 | 是 | 单位分 |
title | 订单标题 | String | 64 | 是 | 订单描述信息,展示在收银台 |
limitPay | 指定支付方式 | String | 1 | 否 | 0-无限制,1-不能使用信用卡 |
outTime | 订单失效时间 | String | 10 | 否 | 未传输时默认15,最小1分钟,最大值15分钟,单位(分) |
asyncNotify | 交易异步通知地址 | String | 1000 | 否 | 传输时根据请求异步URL地址进行通知 |
remark | 备注 | String | 100 | 否 | 订单说明 |
operator | 操作员号 | String | 10 | 否 | 操作员 |
sign | 签名 | String | 255 | 是 | 签名 |
响应参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
code | 返回码 | String | 6 | 是 | |
msg | 返回描述 | String | 50 | 是 |
生成签名demo

微信小程序调起收银台小程序:
let params = { custCode: "平台分配的客户号", merCode: "平台分配的商户号", txnAmt: "1", orderNo: "商户唯一订单号", asyncNotify: "服务器异步通知页面路径", title: "标题", remark: "备注", outTime: "订单失效时间", limitPay: "0", sign: "签名" }
const version = wx.getAppBaseInfo().SDKVersion if (compareVersion(version, '2.26.2') >= 0) { // openEmbeddedMiniProgram,需要小程序基础库版本不低于 2.26.2 wx.openEmbeddedMiniProgram({ appId: 'wxb06988180db4a240', // path: 可不传,默认小程序首页,后续如果地址有变化再传 extraData: param }) } else { wx.navigateToMiniProgram({ appId: 'wxb06988180db4a240', extraData: param }) }
|
支付宝小程序调起收银台小程序:
let params = { custCode: "平台分配的客户号", merCode: "平台分配的商户号", txnAmt: "1", orderNo: "商户唯一订单号", asyncNotify: "服务器异步通知页面路径", title: "标题", remark: "备注", outTime: "订单失效时间", limitPay: "0", sign: "签名" }
my.navigateToMiniProgram({ appId: ' 2021005131625311', // path: 可不传,默认小程序首页,后续如果地址有变化再传 extraData: param })
|
支付宝scheme 链接方式实现调起收银台小程序(适用于支付宝网页应用)
官方文档:https://opendocs.alipay.com/support/01rb18
url格式:alipays://platformapi/startapp?appId=[appId]&page=[page]&query=[query]
注意: query 携带的启动参数必须进行 UrlEncode 编码否则只能获取到第一个参数。
接口URI:/api/omnipay/H5pay
请求参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
custCode | 客户编号 | String | 20 | 是 | 线下提供 |
merCode | 商户编号 | String | 20 | 是 | 线下提供 |
orderNo | 调用方订单号 | String | 40 | 是 | 调用方订单号 该订单号需要唯一,最大长度40,只能由数字,大小写字母构成 |
txnAmt | 订单金额 | String | 14 | 是 | 单位分 |
title | 订单标题 | String | 64 | 是 | 订单描述信息,展示在收银台 |
limitPay | 指定支付方式 | String | 1 | 否 | 0-无限制,1-不能使用信用卡 |
outTime | 订单失效时间 | String | 10 | 否 | 未传输时默认15,最小1分钟,最大值15分钟,单位(分) |
asyncNotify | 交易异步通知地址 | String | 1000 | 否 | 传输时根据请求异步URL地址进行通知 |
returnUrl | 返回商户的URL | String | 1000 | 是 | 支付完成后,返回商户的URL |
remark | 备注 | String | 100 | 否 | 订单说明,展示在收银台 |
operator | 操作员号 | String | 10 | 否 | 操作员 |
响应参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
code | 返回码 | String | 6 | 是 | |
msg | 返回描述 | String | 50 | 是 | |
data | 业务数据 | JsonObject | 是 | 以下为data下一级参数 | |
url | 收银台地址 | String | 10 | 是 | 接入方打开url,即可跳转至收银台页面 |
接口URI:/api/omnipay/scanqr
请求参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
prodCode | 产品编号 | String | 20 | 是 | 线下提供 |
orderNo | 调用方订单号 | String | 40 | 是 | 调用方订单号 该订单号需要唯一,最大长度40,只能由数字,大小写字母构成 |
txamt | 订单金额 | String | 14 | 是 | 单位分 |
code | 扫码支付授权码 | String | 64 | 是 | 设备读取用户微信或支付宝中的条码或者二维码信息(付款码) |
tradingIp | 交易ip | String | 30 | 是 | 商户端终端设备 IP 地址,需传公网ip,若是动态ip,请提供经纬度(邮储数字货币交易必填) |
type | 设备类型 | String | 1 | 是 | P-智能POS A- app扫码 C-PC端 T-台牌扫码 |
custLogin | 商户手机号 | String | 11 | 否 | |
driveNo | 自定义设备编号 | String | 32 | 否 | 字母或数字 |
isPop | 是否为“碰一下NFC”交易 | String | [0..1] | 否 | 1-是,0为否 |
remark | 订单说明备注 | String | 100 | 否 | |
spNo | 音箱编号 | String | 20 | 否 | 有使用国通音箱的时候传输可指定音箱播报 |
speakerSwitch | 是否播报 | String | 1 | 否 | 0不播报 1播报,默认1播报
|
title | 订单标题 | String | 64 | 否 | |
latitude | 纬度 | String | 10 | 否 | 消费者设备支付定位,例:119.411869 |
longitude | 经度 | String | 10 | 否 | 消费者设备支付定位,例:119.411869 |
operator | 操作员号 | String | 10 | 否 | |
serverThreeOrderNo | 服务化第三方订单号 | String | 40 | 否 | 用于国通设备非接口交易时异步订单生成 |
fpid | 服务商机构标识码 | String | 20 | 否 | 用于银联交易上送服务商机构PID使用 |
outTime | 订单失效时间 | String | 5 | 否 | 未传输时默认15,最小1分钟,最大值15分钟,单位(分)。以订单生成时间起,如10:15:00发起下单,则10:31:00点击无法支付订单失效 |
asyncNotify | 交易异步通知地址 | String | 100 | 否 | 传输时根据请求异步URL地址进行通知 |
realTimeRate | 实时交易费率 | String | 6 | 否 | 单位%,支持小数点后两位,特殊项目需平台配置相关权限时生效,用于计算该笔交易实际手续费费率值 |
realTimeD0Rate | D0自动提现费率 | String | 6 | 否 | 单位%,支持小数点后三位,特殊项目需平台配置相关权限时生效,用于计算该笔交易自动提现时的实际D0提现费率(注:如果商户本身D0费率比传入的更低,则取商户本身的D0费率) |
limitPay | 微信指定支付方式 | String | 1 | 否 | 微信支付,0-无限制,1-不能使用信用卡 |
subAppid | 微信子商户公众账号ID | String | 18 | 否 | |
zfbDisablePayChannels | 支付宝禁用支付渠道 | String | 30 | 否 | 禁用渠道,用户不可用指定渠道支付,多个渠道以逗号分割。支付宝支持禁用支付渠道列表 https://opendocs.alipay.com/open/common/wifww7 |
disInfo | 优惠券编号 | String | 40 | 否 | (服务商自有平台优惠劵体系)机构需单独权限配置。 有优惠券信息时候,优惠券编号,实际优惠金额,优惠券面额三个字段必传 |
disTxamt | 实际优惠金额 | String | 14 | 否 | (服务商自有平台优惠劵体系)单位分。机构需单独权限配置。有优惠券信息时候,优惠券编号,实际优惠金额,优惠券面额三个字段必传 |
codeAmt | 优惠券面额 | String | 14 | 否 | (服务商自有平台优惠劵体系)单位分。机构需单独权限配置。有优惠券信息时候,优惠券编号,实际优惠金额,优惠券面额三个字段必传 |
wxAttach | 商家数据包 | String | 127 | 否 |
|
goodsDetail | 支付宝单品优惠功能字段 | JsonArray | 否 | JSON数组格式 | |
goodsId | 商品编号 | String | 30 | 是 | |
alipayGoodsId | 支付宝定义的统一商品编号 | String | 30 | 否 | |
goodsName | 商品名称 | String | 50 | 是 | |
quantity | 商品数量 | Int | 9 | 是 | |
price | 商品单价 | String | 14 | 是 | 单位为元 |
goodsCategory | 商品类目 | String | 20 | 否 | |
body | 商品描述信息 | String | 100 | 否 | |
showUrl | 商品的展示地址 | String | 100 | 否 | |
goodsInfo | 微信支付单品优惠功能字段 | JsonObject | 否 | JSON格式 | |
costPrice | 订单原价 | String | 14 | 否 | 1.商户侧一张小票订单可能被分多次支付,订单原价用于记录整张小票的交易金额。 2.当订单原价与支付金额不相等,则不享受优惠。 3.该字段主要用于防止同一张小票分多次支付,以享受多次优惠的情况,正常支付订单不必上传此参数 |
receiptId | 商家小票 ID | String | 20 | 否 | 例如: |
goodsDetail | 单品列表 | JsonObject | 否 | goodsInfo子集 | |
goodsId | 商品编号 | String | 30 | 是 | 由半角的大小写字母、数字、中划线、下划线中的一 种或几种组成 |
goodsName | 商品名称 | String | 50 | 是 | 商品的实际名称 |
wxpayGoods | 微信侧商品编码 | String | 30 | 否 | 微信支付定义的统一商品编号(没有可不传) |
quantity | 商品数量 | int | 9 | 是 | |
price | 商品单价 | String | 14 | 是 | 单位为:分。如果商户有优惠,需传输商户优惠后 的 单价(例如:用户对一笔 100 元的订单使用了商场发的 优惠券 100-50,则活动商品的单价应为原单价-50) |
acqAddnData | 银联单品优惠活动 | JsonObject | 否 | ||
goodsInfo | 商品明细内容 | JsonArray | 否 | acqAddnData子集 | |
id | 商品编号 | String | 30 | 是 | |
name | 商品名称 | String | 50 | 是 | |
price | 商品单价(单位分) | String | 14 | 是 | |
quantity | 商品数量 | Int | 9 | 是 | |
category | 商品类目 | String | 10 | 否 | |
cardType | 附加信息 | String | 100 | 否 | |
orderInfo | 订单明细内容 | JsonObject | 否 | 如订单标题、订单描述等 acqAddnData子集 | |
title | 商品名称 | String | 50 | 是 | |
dctAmount | 金额 | String | 14 | 是 | (单位分) |
addnInfo | 门店地址 | String | 100 | 是 | |
businessParams | 支付宝业务参数 | JsonObject | 否 | json格式 商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为 json 格式,例如:{"data":"123"}如果用于标识加油支付业务:key 值固定,对应 value 值根据说明传入,例如:{"jiayouSource":"mayijiayou","consumeOutScene":"jiayou"} 一级参数 | |
终端信息参数参数(参数为一级) | |||||
encryptRandNu | 加密随机因子(终端信息参数参数) | String | 64 | 否 | 仅在被扫支付类交易报文中出现:若付款码为 19 位数字,则取后 6 位;若付款码为 EMV 二维码,则取其 tag 57 的卡号/token 号的后 6 位 (一级参数) |
secretText | 密文数据(终端信息参数参数) | String | 64 | 否 | 仅在被扫支付类交易报文中出现:64bit 的密文数据,对终端硬件序列号和加密 随机因子加密后的结果。 本子域取值为:64bit 密文数据进行 base64 编码后的结果。 |
apVersionNo | 终端应用程序的版本号(终端信息参数参数) | String | 5 | 否 | |
ugpsAddress | 定位信息(终端信息参数参数) | String | 30 | 否 |
|
networkLicense | 银行卡受理终端产品入网认证编号(终端信息参数参数) | String | 6 | 否 | 该编号由“中国银联标识产品企业资质认 证办公室”为通过入网认证的终端进行 分配。 格式:6 位字符,例如 P31000 |
支付宝业务扩展参数(参数为一级) | |||||
dynamicTokenOutBizNo
| 当面付刷脸支付场景标识(支付宝业务扩展参数) | String | 64 | 否 | |
hbFqNum | 花呗分期(支付宝业务扩展参数) | String | 2 | 否 | 花呗分期期数, 当前仅支持传入3、6、12参数为一级 参数为一级 |
hbFqSellerPercen | 花呗分期手续费百分值(支付宝业务扩展参数) | String | 6 | 否 | 使用花呗分期需要卖家承担的 手续费 比例的百分值,间联模式请统一传0 |
数币硬钱包参数字段(参数为一级) | |||||
walChannel | 数币钱包通道(数币硬钱包参数字段
| String | 5 | 否 | 24-兴业银行数币通道,不传 表示非钱包支付 |
walPwd | 付款方支付密码(数币硬钱包参数字段 ) | String | 20 | 否 | 硬件子钱包消费时,免密消费可不传,非免密消费必传 |
enctrsKey | SM2加密支付密码密钥(数币硬钱包参数字段 ) | String | 64 | 否 | 硬件子钱包消费时,输入密码后必传 |
apduRespdate | APDU响应数据(数币硬钱包参数字段 ) | String | 300 | 否 | 硬件钱包单离线付款操作指令响应数 |
响应参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
code | 返回码 | String | 6 | 是 | 000000成功,见响应码 |
msg | 返回描述 | String | 50 | 是 | |
data | 业务数据 | JsonObject | 否 | 以下为data子集 | |
threeOrderNo | 第三方订单号,商户单号 | String | 40 | 是 | |
hmOrderNo | 汇买卖平台订单号 | String | 40 | 是 | |
channelOrderNo | 渠道平台订单号 | String | 40 | 是 | (例如:国通、通联支付) |
torderNo | 支付官方订单号,支付渠道的 | String | 40 | 是 | 微信/支付宝(目的通道流水号),银联(官方订单号)可用于退款 |
netrAmt | 商户实收金额 | String | 14 | 是 | 单位分,原订单交易金额-官方商户出资金额-商户交易实收手续费 |
txamt | 原订单交易金额 | String | 14 | 是 | 单位分 |
custFee | 商户交易实收手续费 | String | 14 | 是 | 单位分 |
oldFee | 应收手续费 | String | 14 | 是 | 单位分 |
discountFee | 优惠手续费 | String | 14 | 是 | 单位分 |
custAmt | 商户出资金额
| String | 14 | 否 | 单位分。交易为微信时,若该值为空或0,可查看promotion_detail。数币交易时,该值为优惠金额 |
wxAgetSubsidy | 官方出资金额 | String | 14 | 否 | 单位分。交易为微信时,若该值为空或0、可查看promotion detail |
otherAmt | 其他出资 | String | 14 | 否 | 单位分。1、交易为支付宝时,其他出资方出资金额。可能是支付宝,可能是品牌商,或者其他方,也可能是他们的共同出资。2、交易为微信时,若该值为空,可查看promotion_detail |
openId | 消费者openid | String | 18 | 否 | subAppid对应的消费者openid。微信交易返回openid,支付宝交易返回userId |
subOpenId | 微信子公众号消费者openid | String | 18 | 否 | 微信独有字段 |
tradingIp | 交易ip | String | 15 | 是 | |
orderTime | 交易时间 | String | 14 | 是 | yyyyMMddHHmmss |
cardType | 卡类型 | String | 2 | 否 | 01借记卡02贷记卡03其他 |
discountFlag | 补贴类型 | String | 2 | 否 | 0无、1机构补贴、2公司补贴、11落地机构补贴 |
serverThreeOrderNo | 服务化第三方订单号 | String | 40 | 否 | 用于国通设备,非接口交易时,异步订单生成 |
bankCode | 银行英文缩写 | String | 20 | 否 | 银行英文缩写 |
bankName | 银行名称 | String | 20 | 否 | |
payNo | 支付通道官方订单号 | String | 40 | 否 | |
promotionDetail | 微信支付宝单品优惠信息 | String | 200 | 否 | |
acqAddnData | 银联单品优惠信息 | String | 200 | 否 | |
actualPayAmt | 消费者实际支付金额 | String | 14 | 否 | 单位分。 1、支付宝交易:买家实付金额。该金额代表该笔交易买家实际支付的金 额,不包含商户折扣等金额 2、微信支付:指使用优惠券的情况下,这里等于总金额-优惠券金额 3、云闪付:初始交易金额 |
接口URI:/api/omnipay/orderQuery
请求参数
名称 | 类型 | 长度 | 必传 | 说明 | |
orderNo | 调用方订单号 | string | 40 | 否 | 调用方订单号与汇买卖订单号二选一。 |
hmmOrderNo | 汇买卖订单号 | string | 40 | 否 | 调用方订单号与汇买卖订单号二选一。 |
custLogin | 商户手机号码 | string | 11 | 否 | |
driveNo | 终端号 | string | 8 | 否 | 长度 8 位数字,由合作方自定义 |
orderType | 订单类型, | string | 2 | 否 | 查询收银系统推送订单时必传,枚举:01:服务化查询 |
orderTime | 订单交易时间 | string | 8 | 是 | 格式 yyyyMMdd |
响应参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
code | 返回码 | String | 6 | 是 | |
msg | 返回描述 | String | 50 | 是 | |
data | 业务数据 | JsonObject | 否 | 以下为data下一级参数 | |
netrAmt | 商户实收金额 | string | 14 | 是 | 单位分,成功时返回,商户实收金额=原订单交易金额-官方商户出资金额-商户交易实收手续费 |
txamt | 原订单交易金额 | string | 14 | 是 | 单位分,对应下单接口 txamt |
custFee | 商户交易实收手续费 | string | 14 | 是 | 单位分,成功时返回 |
discountFlag | 补贴类型 | string | 2 | 是 | 0 无、1 机构补贴、2 公司补贴、11 落地机构补贴 |
discountFee | 优惠手续费 | string | 14 | 是 | 优惠手续费=应收手续费-实收手续费 |
custAmt | 商户出资金额 | string | 14 | - | 单位分,交易为微信时,若该值为空,可查看 promotion_detail,成功时返回,数币交易返回官方优惠金额 |
wxAgetSubsidy | 官方出资金额 | string | 14 | - | 单位分,交易为微信时,若该值为空,可查看 promotion_detail |
otherAmt | 其他出资 | string | 14 | - | 单位分,交易为支付宝时,其他出资方出资金额。可能是支付宝,可能是品牌商,或者其他方,也可能是他们的共同出资 |
hmmOrderNo | 汇买卖平台订单号 | string | 40 | 是 | 汇买卖平台订单号,可用于退款 |
threeOrderNo | 第三方订单号(服务商订单号) | string | 40 | 是 | 合作方订单号 |
torderNo | 官方支付平台单号,目的通道流水号 | string | 40 | 是 | 微信/支付宝(目的通道流水号),银联(官方订单号),可用于退款 |
payNo | 支付通道官方订单号 | string | 40 | 是 | 微信、支付宝官方通道订单号 |
orderTime | 订单完成时间(成功时返回) | string | 14 | 是 | |
payWay | 支付方式 | string | 2 | 是 | 0 银联主扫,1 支付宝主扫,2 微信主扫,3 付款码支付(银联被扫),5 公众号支付(微信被扫),7 服务窗支付(支付宝被扫),8 小程序普通交易,60 数币B扫C,61 数币C扫B,72 支付宝碰一下 |
cardType | 卡类型 | string | 2 | - | 01 借记卡,02 贷记卡,03 其他 |
openId | 消费者 OPEN_ID | string | 18 | 是 | 成功时返回 |
tradingIp | 消费者 IP | string | 15 | 是 | 成功时返回 |
limitFee | 交易手续费补贴金额 | string | 14 | 是 | 单位:分 |
hbFqNum | 花呗分期 | string | 2 | - | 花呗分期数,当前仅支持 3、6、12 |
crFqNum | 信用卡分期 | string | 2 | - | 信用卡分期数,当前仅支持 3、6、12 |
jdbtFqNum | 京东白条分期数 | string | 2 | - | 当前仅支持 3、6、12 |
bankCode | 银行英文缩写 | string | 20 | - | |
bankName | 银行名称 | string | 40 | - | |
payChannel | 支付通道 | string | 2 | - | 1 支付宝,2 微信支付,9 银联扫码,11 刷卡,12 数币 |
mercId | 通道商户号 | string | 40 | - | |
remark | 备注 | string | - | ||
srefNo | 参考号 | string | 40 | - | payChannel 为 11 才有该字段 |
batNo | 批次号 | string | 40 | - | payChannel 为 11 才有该字段 |
txnRsv1 | 双免标识 | string | 1 | - | 0 或者空代表不是,1 代表是 |
oldOrderNo | 原汇买卖订单号 | string | 40 | - | |
tranTypeSer | 交易类型 | string | 2 | - | 01 扫码消费,02 刷卡消费,03 数币消费 |
deviceNo | 设备号 | string | 40 | - | |
mediatype | 卡类型1 | string | 2 | - | 01 芯片卡,02 磁条卡,payChannel 为 11 且非历史订单才有该字段 |
subOpenId | 子公众号消费者 openid | string | 18 | - | |
disInfo | 优惠券编号 | string | 40 | - | (服务商自有平台优惠劵体系)下单时需传输才会触发 |
disTxamt | 实际优惠金额 | string | 141 | - | (服务商自有平台优惠劵体系)下单时需传输才会触发,单位分 |
codeAmt | 优惠券面额 | string | 14 | - | (服务商自有平台优惠劵体系)下单时需传输才会触发,单位分 |
terno | 终端编号 | string | 40 | - | |
actualPayAmt | 消费者实际支付金额 | string | 14 | - | 单位分。1、支付宝交易:买家实付金额。该金额代表该笔交易买家实际支付的金额,不包含商户折扣等金额;2、微信支付:指使用优惠券的情况下,这里等于总金额-优惠券金额;3、云闪付:初始交易金额 |
支付宝,微信单品优惠 ,json 数组 | JsonArray | - | json 数组 | ||
acqAddnData | 银联单品优惠 | JsonObject | - |
promotion_detail
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
券 ID | string | 40 | - | ||
name | 优惠名称 | string | 40 | - | |
scope | 优惠范围 | string | 40 | - | |
type | 优惠类型 | string | 2 | - | |
amount | 优惠券面额 | string | 14 | - | |
activity_id | 活动 ID | string | 40 | - | |
wxpay_contribu | 微信/支付宝出资 | string | 14 | - | |
merchant_contribute | 商户出资 | string | 14 | - | |
other_contribute | 其他出资 | string | 14 | - | |
goods_detail | 单品列表,json 数组 | JsonArray | 是 |
goods_detail
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
goods_id | 商品编码 | string | 40 | 是 | |
goods_remark | 商品备注 | string | 40 | - | |
discount_amount | 商品优惠金额 | string | 14 | 是 | |
quantity | 商品数量 | string | 10 | 是 | |
price | 商品价格 | string | 14 | 是 |
acqAddnData
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
ΘgoodsInfo | 商品信息,json 数组 | JsonObject | 是 |
goodsInfo
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
id | 商品编号 | string | 40 | 是 | |
name | 商品名称 | string | 40 | 是 | |
price | 商品单价 | string | 14 | 是 | |
quantity | 商品数量 | string | 10 | 是 | |
category | 商品类目 | string | 2 | - | |
card_type | 附加信息 | string | 40 | - |
1.1. 退款
退款金额需小于等于今日交易金额,才可退款
接口URI:/api/omnipay/refund
请求参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
orderNo | 服务商退款订单号 | string | 40 | 是 | 第三方退款订单号,该订单号需要唯一,最大长度40,只能由数字,大小写字母构成(合作方重新生成的一个用来退款的订单号) |
reOrderNo | 汇买卖平台订单号 | string | 40 | - | 对应支付接口返回的orderNo(汇买卖平台订单号,官方退款订单号,原第三方交易订单号三选一) |
tOrderNo | 官方退款订单号 | string | 40 | - | 对应支付接口或异步通知接口返回的T_ORDER_NO(汇买卖平台订单号,官方退款订单号,原第三方交易订单号三选一) |
oldTOrderNo | 原第三方交易订单号 | string | 40 | - | 对应支付接口请求参数中的orderNo(汇买卖平台订单号,官方退款订单号,原第三方交易订单号三选一),推荐原交易平台订单号 |
refundAmount | 退款金额 | string | 14 | 是 | 单位分,支持部分退款。 |
payWay | 支付方式 | string | 2 | 否 | 0.银联B扫C、1.支付宝B扫C、2.微信B扫C、3.银联C扫B、5.微信公众号C扫B、7.支付宝C扫B、8.微信小程序交易、11.刷卡、12.插卡、21.挥卡、51.刷脸、60数币B扫C、61数币C扫B、72支付宝碰一下
|
asyncNotifyUrl | 异步通知接口地址 | string | 256 | - | 特殊项目使用,默认直接返回退款情况,或调用退款查询确认退款状态,用于特殊项目,传输时根据请求地址进行通知,注:1.地址需提前报备国通进行转化,解析失败按照项目配置地址通知 |
custLogin | 商户手机号 | string | 11 | - | |
type | 设备类型 | string | 2 | - | |
operator | 操作员号 | string | 20 | - | |
tradingIp | 请求ip | string | 15 | - | |
access | 接入方式 | string | 2 | - | 0:Android SDK 1:iOS SDK 2:windows SDK 3:直连(默认填3) |
remark | 退款备注 | string | 60 | - | 支持60个字符,数字、字母、文字 |
refundDisAmt | 优惠券退款金额 | string | 14 | - | (服务商自有平台优惠劵体系)下单时需传输才会触发,单位分 |
响应参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
code | 返回码 | String | 6 | 是 | |
msg | 返回描述 | String | 50 | 是 | |
data | 业务数据 | JsonObject | 否 | 以下为data下一级参数 | |
orderFlowNo | 汇买卖平台退款订单号 | string | 40 | 是 | 国通平台退款订单号 |
threeOrderNo | 服务商退款订单号 | string | 40 | 是 | 退款请求时,合作商提供的第三方退款订单号 |
refundAmt | 退款金额 | string | 14 | 是 | |
orderStatus | 订单状态 | string | 2 | 是 | 3退款失败 4退款成功 5退款中 |
orderTime | 订单时间 | string | 14 | 是 | |
refundFee | 退款手续费 | string | -14 | 单位:分。 | |
oldFee | 应收手续费 | string | -14 | 单位:分 | |
discountFee | 优惠手续费 | string | -14 | 单位:分 | |
reAgetSubsidy | 退回官方出资金额 | string | -14 | 单位:分 | |
reCustAmt | 退回商户出资金额 | string | -14 | 单位:分 |
1.2. 退款查询
接口URI:/api/omnipay/refundQuery
请求参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
orderNo | 服务商退款订单号 | string | 40 | 是 | 服务商退款的时候上送的退款订单号 |
orderType | 订单场景类型 | string | 2 | - | 00普通,01收银调终端,未传时默认00普通,使用收银调终端退款时必传01 |
type | 设备类型 | string | 2 | - | |
operator | 操作员号 | string | 20 | - | |
tradingIp | 请求ip | string | 30 | - | |
access | 接入方式 | string | 2 | - | 0:Android SDK 1:iOS SDK 2:windows SDK 3:直连(默认填3) |
originTradeDate | 退款日期 | string | 8 | - | 格式yyyyMMdd,支持60天查询,不传默认查询当天。(邮支付是必传的) |
响应参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
code | 返回码 | String | 6 | 是 | |
msg | 返回描述 | String | 50 | 是 | |
data | 业务数据 | JsonObject | 否 | 以下为data下一级参数 | |
orderFlowNo | 汇买卖平台退款订单号 | string | 40 | 是 | |
orderNo | 服务商退款订单号 | string | 40 | 是 | 退款请求时,合作商提供的第三方退款订单号 |
refundAmt | 退款金额 | string | 14 | 是 | |
orderStatus | 订单状态 | string | 2 | 是 | 3退款失败 4退款成功 5退款中 7刷卡撤销成功 98刷卡撤销中 |
orderTime | 订单时间 | string | 14 | 是 | |
remark | 退款备注 | string | 60 | - | |
reserveFlag | 是否使用退款备付金 | string | 2 | - | 是/否 |
refundFee | 退款手续费 | string | 14 | - | 单位:分 |
payChannel | 支付通道 | string | 2 | - | 1.支付宝、2.微信支付、9.银联扫码、11.刷卡、12.数币 |
mercId | 通道商户号 | string | 40 | - | |
srefNo | 参考号 | string | 40 | - | payChannel为11才有该字段 |
batNo | 批次号 | string | 40 | - | payChannel为11才有该字段 |
txnRsv1 | 双免标识 | string | 1 | - | 0或者空代表不是, 1代表是 |
oldOrderNo | 原汇买卖订单号 | string | 40 | - | |
oldThreeOrderNo | 原汇买卖第三方订单号 | string | 40 | - | |
mediatype | 卡类型1 | string | 2 | - | 01芯片卡 02磁条卡。 payChannel为11才有该字段 |
cardType | 卡类型2 | string | 2 | - | 01借记卡 02贷记卡 03准贷记卡 04预付卡。 payChannel为11才有该字段 |
tranTypeSer | 交易类型 | string | 2 | - | 01扫码消费 ,02刷卡消费,03数币消费 |
deviceNo | 设备号 | string | 40 | - | |
oldFee | 应收手续费 | string | 14 | - | 单位:分 |
discountFee | 优惠手续费 | string | 14 | - | 单位:分 |
refundDisAmt | 优惠券退款金额 | string | 14 | - | (服务商自有平台优惠劵体系)下单时需传输才会触发,单位:分 |
terno | 终端编号 | string | 40 | - | |
reAgetSubsidy | 退回官方出资金额 | string | 14
| - | 单位:分 |
reCustAmt | 退回商户出资金额 | string | 14 | - | 单位:分 |
1.3. 交易异步通知
后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析返回参数时要支持可能扩展参数这种情况。
接口URI:对接方提供
请求参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
orderId | 汇买卖平台订单号 | String | 40 | 是 | |
orderNo | 渠道订单号 | String | 40 | 是 | |
custCode | 客户编号 | String | 40 | 是 | |
channelOrderNo | 渠道订单号 | String | 40 | 是 | |
channelOrgNo | 渠道机构号 | String | 40 | 是 | |
channelMerNo | 渠道商户号 | String | 40 | 是 | |
hmmOrderNo | 汇买卖平台订单号 | string | 40 | 是 | 汇买卖平台订单号,可用于退款 |
threeOrderNo | 第三方订单号(服务商订单号) | string | 40 | 是 | 合作方订单号 |
tOrderNo | 通道流水号 | String | 64 | 否 | |
tPayNo | 退款单号 | String | 64 | 否 | |
txamt | 交易金额(分) | Long | 是 | ||
netrAmt | 实收金额(分) | Long | 否 | ||
custFee | 实收手续费(分) | Long | 否 | ||
oldFee | 原手续费(分) | Long | 否 | ||
limitFee | 限额手续费(分) | Long | 否 | ||
openId | 用户标识 | String | 128 | 否 | |
wxAgetSubsidy | 微信机构补贴(分) | Long | 否 | ||
custAmt | 官方优惠金额(分) | Long | 否 | ||
otherAmt | 其他出资金额(分) | Long | 否 | ||
payWay | 支付方式 | String | 10 | 是 | |
orderTime | 订单时间 | Date | 否 | ||
orderStatus | 订单状态 | String | 10 | 是 | 订单状态:0-支付中、1.支付成功、e.数币成功、3-部分退款成功、4.退款成功、5.退款中、7.刷卡撤销成功、14.预授权成功、16.预授权撤销成功、98.刷卡撤销中、a.担保成功、c.担保撤销成功 (注:预授权完成成功、担保完成成功,是属于1.支付成功;预授权完成撤销成功、担保完成撤销成功是属于4.退款成功; 数币退款成功是属于4.退款成功,数币退款中属于5.退款中),9.支付失败 |
payChannel | 支付渠道 | String | 20 | 是 | |
ustldat | 未知字段 | String | 64 | 否 | |
tradingIp | 交易IP | String | 45 | 否 | |
deviceNo | 设备编号 | String | 64 | 否 | |
mercid | 商户ID | String | 32 | 否 | |
discountFlag | 补贴标识 | String | 2 | 否 | |
txnRsv2 | 交易预留2 | String | 1 | 否 | |
investmentType | 出资类型 | String | 10 | 否 | |
bankCode | 银行代码 | String | 10 | 否 | |
bankName | 银行名称 | String | 50 | 否 | |
posPayWay | POS支付方式 | String | 2 | 否 | |
mediatype | 介质类型 | String | 2 | 否 | |
cardType | 卡类型 | String | 2 | 否 | |
ordType | 订单类型 | String | 2 | 否 | |
batNo | 批次号 | String | 64 | 否 | |
srefNo | 参考号 | String | 64 | 否 | |
txnRsv1 | 交易预留1 | String | 1 | 否 | |
oldOrderNo | 原订单号 | String | 64 | 否 | |
tranTypeSer | 交易类型 | String | 2 | 是 | |
promotionDetail | 优惠详情 | String | 否 | ||
acqAddnData | 附加数据 | String | 否 | ||
subOpenId | 子用户标识 | String | 128 | 否 | |
posVoucherno | POS凭证号 | String | 64 | 否 | |
sposSelorderno | 选择订单号 | String | 64 | 否 | |
disInfo | 优惠信息 | String | 否 | ||
codeAgeAmt | 优惠券金额(分) | Long | 否 | ||
codeAmt | 优惠码金额(分) | Long | 否 | ||
refundDisAmt | 退款优惠金额(分) | Long | 否 | ||
jdbtFqNum | 京东白条分期数 | String | 10 | 否 | |
hbFqNum | 花呗分期数 | String | 10 | 否 | |
crFqNum | 信用分期数 | String | 10 | 否 | |
terno | 终端号 | String | 64 | 否 | |
actualPayAmt | 实付金额(分) | Long | 否 | ||
notifyStatus | 通知状态 | String | 1 | 是 | |
remark | 订单备注 | String | 255 | 是 | |
id | 唯一主键 | String | 40 | 是 | |
sign | 签名 | String | 255 | 是 |
响应参数
参数 | 名称 | 类型 | 长度 | 必传 | 说明 |
code | 响应码 | String | 6 | 是 | 000000:成功 |
msg | 响应信息 | String | 255 | ||
data | 响应数据 | Object | |||
1. 字典说明
1.
1.1. 响应码
code | 描述 |
000000 | 成功 |
HM9999 | 系统异常,调用失败 |
HM2001 | 代理商不存在 |
HM2002 | 代理商状态异常 |
HM2003 | 代理商未取得产品权限 |
HM3001 | 商户不存在 |
HM3002 | 商户状态异常 |
HM3003 | 商户未取得产品权限 |
HM4001 | 产品不存在 |
HM4002 | 产品状态异常 |
HM7000 | 重复订单 |
HM8888 | 支付中 |
HM8999 | 支付失败 |
GW401 | 应用公钥格式错误 |
GW402 | 网关私钥格式错误 |
GW403 | 验签失败 |
GW404 | 解密失败 |
GW405 | 加密失败响应加密报错 |
GW406 | 加密参数格式异常入参没有按照文档json格式 |
GW407 | 应用公钥缺少 |
GW408 | 网关私钥缺少 |
GW501 | 无后端服务实例 |
GW502 | 后端服务异常 |
GW503 | 后端服务路由未配置 |
GW101 | 缺少参数 |
GW102 | 数据大小限制超过上传文件最大值 |
GW103 | 请求被阻止白名单验证失败 |
GW104 | 请求重复提交 |
GW105 | 请求时间已过期请求参数中的timestamp时间和网关服务器时间相差超过15分钟 |
GW106 | appkey未找到请检查租户号商户号appkey参数 |
GW107 | 参数格式不正确 |
GW999 | 网关异常 |
2、本站仅提供信息存储空间服务,所有收集和转载内容不承担任何法律责任。
3、内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!
4、本站全资源请勿用于非法操作,一切后果与本站无关。
5、如遇到投资课程或软件,请一律不要相信,访客发现请向客服举报。