统一支付
统一响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
code |
是 | String | 错误码 |
message |
是 | String | 错误信息 |
result |
是 | Boolean | 返回结果 |
data |
是 | String | 业务参数 |
支付接口
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | app_id, 由系统统一分配 |
merchant_code |
是 | String | 商户号 |
store_code |
否 | String | 门店编号 |
operator_id |
否 | String | 操作员 id |
limit_pay |
否 | String | 00-全部 01-限定不能使 用信用卡支付 默认值 00 |
out_trade_no |
是 | String | 商户订单号 |
channel |
否 | String | 支付渠道,详细参考 支付渠道 channel 属性值 |
product |
是 | String | 支付产品,详细参考 支付产品 product 属性值,当支付类型为(微信,支付宝,银联)条码支付时非必传 |
client_ip |
是 | String | 客户端调用的 IP |
amount |
是 | int | 支付金额,单位分 |
subject |
是 | String | 订单标题,该参数最长 32 个 Unicode |
body |
是 | String | 商品描述信息,该参数最长为 255 个 Unicode 字符 |
description |
是 | String | 订单附加说明,最多 255 个 Unicode 字符 |
extra |
否 | String | 特定渠道发起交易时需要的额外参数,以及部分渠道支付成功返回的额外参数,详细参考 支付渠道 extra 参数说明 。 |
notify_url |
否 | String | 交易的通知地址 |
time_start |
否 | String | 订单生成时间,格式为 yyyyMMddHHmmss。 如 2009 年 12 月 25 日 9 点 10 分 10 秒表示为 20091225091010。 时区为 GMT+8 beijing。该时间取自商户服务器。 注:订单生成时间与超时时间需要同时传入才会生效 |
time_expire |
否 | String | 订单失效时间,格式为 yyyyMMddHHmmss。 如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 20091227091010。 时区为 GMT+8 beijing。该时间取自商户服务器。 注:订单生成时间与超时时间需要同时传入才会生效。 建议最短失效时间为 1 分钟 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
id |
是 | String | 通知支付平台流水号 |
out_trade_no |
是 | String | 商户订单号 |
state |
是 | String | 订单状态 |
credential |
是 | String | 调用支付的凭证 |
third_trade_no |
是 | String | 第三方流水号 |
channel_trade_no |
否 | String | 微信支付宝订单号 |
failure_code |
是 | String | 业务参数 code |
failure_msg |
是 | String | 业务结果描述 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
- 支付的凭证(credential,值为一个 json 格式对象,下面列表描述 json 对象的值)
WECHAT_LITE WECHAT_OFFICE_ACCOUNT
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
appId |
是 | String | 公众号 id |
packageValue |
是 | String | 订单详情扩展字符串 |
nonceStr |
是 | String | 随机字符串 |
timeStamp |
是 | String | 时间戳 |
paySign |
是 | String | 签名值 |
signType |
是 | String | 签名类型 |
WECHAT_H5 ALIPAY_H5
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
h5_url |
是 | String | 支付跳转链接 |
WECHAT_APP
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
prepay_id |
否 | String | 预支付交易会话标识 |
ALIPAY_FIXED_QRCODE
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
trade_no |
否 | String | 支付宝支付时返回,用于唤起支付宝支付 |
WECHAT_DYNAMIC_SCAN_CODE ALIPAY_DYNAMIC_SCAN_CODE
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
qr_code |
是 | String | 当前预下单请求生成的二维码码串,可以用二维码生成工具根据该码串值生成对应的二维码,扫码支付时必有值 |
ALIPAY_APP
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
orderString |
是 | String | 预支付参数 |
定额聚合支付
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | app_id, 由系统统一分配 |
merchant_code |
是 | String | 统一平台分配的商户号 |
store_code |
否 | String | 门店编号 |
operator_id |
否 | String | 收银员的id |
out_trade_no |
是 | String | 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母,且在同一个商户号下唯一 |
amount |
是 | String | 交易金额默认为人民币交易,接口中参数支付金额单位为【分】,参数值不能带小数 |
callback_url |
否 | String | 支付成功前端回调地址 |
notify_url |
否 | String | 支付成功异步通知地址,示例:http://www.baidu.com |
attach |
否 | String | 订单备注,通过支付结果异步通知中的description参数原路返回。 |
body |
否 | String | 商品描述信息,该参数最长为 255 个 Unicode 字符 |
subject |
否 | String | 订单标题,该参数最长 32 个 Unicode |
extra |
否 | String | {\"qr_code_to_img\":\"Y\"} Y表示接口返回二维码图片 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
out_trade_no |
是 | String | 商户订单号 |
credential |
是 | String | 调用支付的凭证 |
failure_code |
是 | String | 业务参数 code |
failure_msg |
是 | String | 业务结果描述 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
- 支付的凭证(credential,值为一个 json 格式对象,下面列表描述 json 对象的值)
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
qr_code |
是 | String | 当前预下单请求生成的二维码码串,可以用二维码生成工具根据该码串值生成对应的二维码, |
qr_code_img_url |
否 | String | 图片url |
订单查询
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | app_id, 由系统统一分配 |
merchant_code |
是 | String | 商户号 |
out_trade_no |
是 | String | 商户订单号,d |
third_trade_no |
否 | String | 第三方支付订单号 |
client_ip |
是 | String | 客户端调用的 IP |
extra |
否 | String | 特定渠道时需要的额外参数,详细参考 支付渠道 extra 参数说明 。 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
id |
是 | String | 通知支付平台流水号 |
out_trade_no |
是 | String | 商户订单号 |
amount |
是 | int | 订单金额,单位:分 |
state |
是 | String | 交易状态 |
payer_id |
否 | String | 付款人标识 |
subject |
是 | String | 订单标题 |
body |
是 | String | 商品描述信息 |
description |
是 | String | 订单附加说明 |
channel |
是 | String | 支付渠道,详细参考 支付渠道 channel 属性值 |
product |
是 | String | 支付产品,详细参考 支付产品 product 属性值 |
store_code |
是 | String | 门店编号 |
operator_id |
是 | String | 操作员 id |
third_trade_no |
否 | String | 第三方流水号 |
channel_trade_no |
否 | String | 微信支付宝订单号 |
failure_code |
是 | String | 业务参数 code |
failure_msg |
是 | String | 业务结果描述 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
update_time |
否 | String | 订单完成时间,成功时返回,格式yyyyMMddHHmmss |
申请退款
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | app_id, 由系统统一分配 |
out_trade_no |
是 | String | 商户订单号(原交易订单号) |
third_trade_no |
否 | String | 第三方支付流水号 |
out_refund_no |
是 | String | 商户订单号(退款订单号) |
total_amount |
是 | int | 交易金额,单位:分 |
refund_amount |
是 | int | 退款金额,单位:分 |
subject |
是 | String | 商品标题 |
body |
是 | String | 商品描述信息 |
description |
是 | String | 订单附加说明 |
extra |
否 | String | 预留字段 |
notify_url |
否 | String | 通知地址,预留字段 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
refund_amount |
是 | int | 退款金额,单位:分 |
out_trade_no |
是 | String | 商户订单号(原订单号) |
out_refund_no |
是 | String | 商户订单号(退款订单号) |
state |
是 | String | 交易状态 |
third_trade_no |
否 | String | 退款第三方流水号 |
channel_trade_no |
否 | String | 退款微信支付宝订单号 |
failure_code |
是 | String | 业务参数 code |
failure_msg |
是 | String | 业务结果描述 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
撤销交易
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | app_id, 由系统统一分配 |
out_trade_no |
是 | String | 商户订单号(原交易订单号) |
third_trade_no |
否 | String | 第三方支付流水号 |
out_cancel_no |
是 | String | 商户订单号(撤销订单号) |
subject |
是 | String | 商品标题 |
body |
是 | String | 商品描述信息 |
description |
是 | String | 订单附加说明 |
extra |
否 | String | 特定渠道时需要的额外参数,详细参考 支付渠道 extra 参数说明 。 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
out_trade_no |
是 | String | 商户订单号 |
state |
是 | String | 交易状态 |
failure_code |
是 | String | 业务参数 code |
failure_msg |
是 | String | 业务结果描述 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
关闭订单
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | app_id, 由系统统一分配 |
out_trade_no |
是 | String | 商户订单号(原交易订单号) |
merchant_code |
是 | String | 商户号 |
subject |
否 | String | 商品标题 |
body |
否 | String | 商品描述信息 |
description |
否 | String | 订单附加说明 |
extra |
否 | String | 特定渠道时需要的额外参数,详细参考 支付渠道 extra 参数说明 。 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
out_trade_no |
是 | String | 商户订单号 |
state |
是 | String | 交易状态 |
failure_code |
是 | String | 业务参数 code |
failure_msg |
是 | String | 业务结果描述 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
订单通知
通知参数
支付完成后,统一平台系统会把支付结果发送给商户,商户需要接收处理,并返回应答。对后台通知交互时,如果统一平台系统收到商户的应答不是成功或超时,会认为通知失败,通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但统一平台不保证通知最终能成功。(通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)
推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
out_trade_no |
是 | String | 商户订单号,商户自行生成的唯一订单标识 |
created |
是 | String | 订单生成时间 格式yyyyMMddHHmmss |
third_trade_no |
是 | String | 第三方流水号 |
channel_trade_no |
否 | String | 微信支付宝订单号 |
state |
是 | String | 订单状态 |
merchant_code |
是 | String | 商户编号 |
update_time |
是 | String | 订单支付时间 格式yyyyMMddHHmmss |
amount |
是 | int | 订单金额,单位:分 |
store_code |
是 | String | 门店编号 |
operator_id |
是 | String | 操作员 id |
product |
是 | String | 支付产品,详细参考 支付产品 product 属性值 |
client_ip |
是 | String | 客户端调用的 IP |
subject |
是 | String | 订单标题 |
body |
是 | String | 商品描述信息 |
description |
是 | String | 订单附加说明 |
payer_id |
否 | String | 付款人标识 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
返回参数
处理成功,返回 SUCCESS,不分大小写,以字符串的形式返回
处理失败,返回任意字符串,平台认为通知失败,平台会通过一定的策略间接性重新发起通知,尽可能提高通知的成功率,但不保证通知最终能成功。
退款订单通知
通知参数
暂只支持channel 为 WECHAT / SXF / IPSPAY , 其他支付渠道为同步退款或者可通过查询接口查询
退款完成后,统一平台系统会把退款结果发送给商户,商户需要接收处理,并返回应答。对后台通知交互时,如果统一平台系统收到商户的应答不是成功或超时,会认为通知失败,通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但统一平台不保证通知最终能成功。(通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)
推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
out_trade_no |
是 | String | 商户订单号(原订单号) |
out_refund_no |
是 | String | 商户订单号(退款订单号) |
refund_amount |
是 | int | 退款金额,单位:分 |
amount |
是 | int | 原订单金额,单位:分 |
third_refund_no |
是 | String | 第三方退款订单号 |
state |
是 | String | 订单状态 |
merchant_code |
是 | String | 商户编号 |
store_code |
是 | String | 门店编号 |
refund_time |
是 | String | 退款完成时间 格式yyyyMMddHHmmss |
product |
是 | String | 支付产品,详细参考 支付产品 product 属性值 |
subject |
是 | String | 订单标题 |
body |
是 | String | 商品描述信息 |
description |
是 | String | 订单附加说明 |
sign_type |
是 | String | 签名类型 |
sign |
是 | String | 签名值 |
返回参数
处理成功,返回 SUCCESS,不分大小写,以字符串的形式返回
处理失败,返回任意字符串,平台认为通知失败,平台会通过一定的策略间接性重新发起通知,尽可能提高通知的成功率,但不保证通知最终能成功。
下载对账
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | 统一平台appid |
merchant_code |
是 | String | 统一平台商户编号 |
sign |
是 | String | 签名值 |
sign_type |
是 | String | 签名类型,默认MD5 |
bill_date |
是 | String | 对账时间,格式yyyyMMdd |
bill_type |
是 | String | 对账类型,1-对账单 |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
bill_download_url |
是 | String | 下载地址 |
对账文件举例
渠道编号,商户号,门店编号,交易类型,支付机构,支付产品,交易时间,商户订单号,平台订单流水号,第三方订单流水号,订单金额,订单备注,商户备注,订单标题,商品描述信息,预期手续费,通道订单号,原交易订单通道订单号 `212010016732`,`1130300000261`,`3130300000066`,`xft.trade.pay`,`SPDB`,`SPDB_ALIPAY_BAR_CODE`,`2019-10-21 17:12:33`,`xxxxxxxx`,`xxxxx`,`xxxxxx`,`1`,`xx`,`xx`,`xx`,`xx`,`xxx`,`xxx`,`xxx` `212010016732`,`1130300000261`,`3130300000066`,`xft.trade.refund`,`SPDB`,`SPDB_ALIPAY_BAR_CODE`,`2019-10-21 17:17:19`,`xxxxxx`,`xxxxxx`,`xxxxxxx`,`1`,`xx`,`xx`,`xx`,`xx`,`xx`,`xx`,`xx` 总支付成功金额: `1.0`,总成功笔数: `1`,总退款笔数:`1`,总退款金额:`1.0`
下载结算文件
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | 统一平台appid |
merchant_code |
是 | String | 统一平台商户编号 |
sign |
是 | String | 签名值 |
sign_type |
是 | String | 签名类型,默认MD5 |
bill_date |
是 | String | 对账时间,格式yyyyMMdd |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
bill_download_url |
是 | String | 下载地址 |
对账文件举例
渠道编号,商户编号,门店编号,交易类型,支付机构,支付产品,结算时间,商户订单号,第三方订单流水号,订单金额,手续费,实际到账金额,操作员ID,,订单标题,商品描述信息,订单备注 `243010026xxx`,`14301000005xx`,`3430100000xxx`,`xft.trade.pay`,`SPDB`,`SPDB_WECHAT_OFFICE_ACCOUNT_OFF_LINE`,`2020-03-14`,`2020031409025800000025111`,`6230de729d394a5b89b3aec1xxx`,`100`,`0`,`100`,`xxx`,`xx`,`xx`,`xx` 总支付成功金额: `1.0`,总成功笔数: `1`,总退款笔数:`0`,总退款金额:`0.0`
收款设备获取商户支付信息
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
app_id |
是 | String | 设备的appid |
device_sn |
是 | String | 设备SN号 |
sign |
是 | String | 签名值 |
- 响应参数
字段 | 是否必选 | 字段类型 | 字段说明 |
---|---|---|---|
md5_key |
是 | String | 支付签名md5key |
device_sn |
是 | String | 设备SN号 |
merchant_code |
是 | String | 商户编号 |
store_code |
是 | String | 门店编号 |
operator_id |
否 | String | 收银员id |
sign |
是 | String | 签名值 |
app_id |
是 | String | 支付appid |