# 交易接口
最新更新时间:2023.06.13
先离场后付费请求交易扣款接口。· 该接口为同步请求;
· 接入先离场后付费服务必须先接入"停车产品"接口;
· 使用先离场后付费的商家需要在开放平台中申请权限后才可使用;
· 目前仅支持蓝牌和新能源车的先离场后付费服务,其他车牌暂不支持。
# 接口说明
请求URL: https://{domain}/os-base/trade/credit/v2/open
请求方式: POST
请求参数 公共请求参数
参数名 | 必填 | 类型 | 说明 |
---|---|---|---|
access_id | 是 | string | 开发者唯一标识 |
sign_type | 是 | string | 固定传RSA2 |
time_stamp | 是 | long | 请求时间,Linux时间戳,单位毫秒 |
sign | 是 | string | 签名结果 |
data | 是 | string | 将业务参数转为JSON字符串,然后使用BASE64编码的数据 |
详细签名方法请阅读接口加密方案
名称 | 必填 | 类型 | 说明 |
---|---|---|---|
carPlate | 是 | string | 需要进行扣款的车牌号 |
carPlateColor | 是 | int | 车牌颜色 1-蓝色 2-黄色 3-白色 4-黑色 5-绿色 6-黄绿双拼色 常量定义在SDK的TyhConstants.CarPlateColor中 |
osOrderId | 是 | string | 停车订单记录号 在接入停车产品时车场方生成的订单记录号(车辆在停车场唯一停车订单编号,支持数字 字母 _ -,最大长度32),车场方生成 |
osMerchantCode | 是 | string | 开放平台为商户生成的唯一编号 |
osStoreCode | 是 | string | 开放平台为门店(停车场)生成的唯一编号 |
payBusiness | 否 | string | 支付业务,该参数传值必须提前在开放平台登记过,否则会导致交易失败,传入此值校验是否在平台开通,未指定时,不传 |
ownerTradeNo | 是 | string | 商户交易订单号,要求唯一 |
title | 是 | string | 单标题 最长256 |
remark | 否 | string | 给支付平台的附加信息,支付平台会原封返回给用方 |
orderFee | 是 | int | 订单总金额 单位分 范围 1 ~ 1000000000 |
ownerBusinessNo | 否 | string | 商户维护:商户创建的订单业务号,商户自传,支付回调原封返回 |
ownerPayTerminal | 否 | string | 商户支付终端,商户自传,支付回调原封返回 |
公共响应参数
名称 | 必传 | 类型 | 说明 |
---|---|---|---|
code | 是 | int | 请求结果code,详细请参考错误码说明) |
msg | 是 | string | 请求结果描述,失败时会返回错误原因 |
data | 否 | object | 请求结果返回的业务响应参数,若无业务参数则返回空 |
响应参数
名称 | 类型 | 说明 |
---|---|---|
ownerTradeNo | string | 第三方商户创建的唯一订单号 |
osTradeNo | string | 开放平台交易记录唯一订单号 |
tpTradeNo | string | 该笔交易记录在支付机构(支付宝/微信)的订单号 |
tradeStatus | string | 交易状态 WAIT:交易创建,等待买家付款; SUCCESS: 支付成功; SUCCESS_PART_REFUND: 支付成功有部分退款; SUCCESS_FULL_REFUND: 支付成功全额退款; FAILURE:支付失败(包含用户取消支付、超时关闭); CLOSE:已关闭,订单超过操作时限 |
orderFee | int | 该笔订单的资金总金额 单位为分 |
paymentFee | int | 交易的用户实付金额 单位为分 |
remark | string | 商户给开放平台的的附加数据,支付平台原封不动返回 |
osMerchantCode | string | 开放平台为商户生成的唯一编号 |
osStoreCode | string | 开放平台为门店(停车场)生成的唯一编号 |
createdTime | long | 交易下单时间,时间戳,标准北京时间 |
payTime | long | 用户完成支付的时间,时间戳,标准北京时间 |
payChannel | string | 支付渠道 ALI_PAY:支付宝,WX_PAY:微信 |
payProduct | string | 支付产品类型 APP:手机App客户端; MINI_APP:小程序; M_WEB:手机网页支付; PC_WEB:电脑网页支付; USER_QR:用户扫描商家二维码支付; MCH_QR:商家扫描用户付款码支付; FACE:刷脸付; H5:网页支付; CREDIT:先离场后付费 |
title | string | 支付标题 |
payBusiness | string | 业务类型,请求交易下单传参则有值 |
buyerLoginId | string | 买家在支付机构的登录账号 |
ownerAppBuyerId | string | 商户应用对应用户ID,openId |
refundFee | int | 退款金额,单位为分 |
ownerBusinessNo | string | 商户维护:商户创建的订单业务号,商户自传,支付回调原封返回 |
ownerPayTerminal | string | 商户支付终端,商户自传,支付回调原封返回 |
SDK方法
// 创建上传数据client
TyhPaymentClient client = TyhPaymentClient.create(TyhOptions.builder()
.accessId(ACCESS_ID)
.secretKey(SECRET_KEY)
.allowUpload(Boolean.TRUE)
.build());
// 先离场后付费扣款
CreditPayTradeCmd cmd = CreditPayTradeCmd.builder()
.carPlate("皖Axxxxx")
.carPlateColor(TyhConstants.CarPlateColor.BLUE)
.orderFee(1)
.osOrderId("xxxxxx")
.title("停车缴费")
.osMerchantCode("OS_MERCHANT_ID")
.osStoreCode("OS_STORE_ID")
.build();
Results<CreditPayTradeDto> results = client.creditTrade(cmd);
入参格式
{
"carPlate": "皖Axxxxx",
"carPlateColor": 1,
"osOrderId": "xxxxxx",
"osMerchantCode" : "2293839381",
"osStoreCode" : "39819018",
"ownerTradeNo" : "test_trade_191281333",
"title": "测试支付停车费",
"remark" : "这是remark",
"orderFee" :1
}
出参格式:
{
"code": 8888,
"msg": "处理成功",
"data": {
"ownerTradeNo": "test_trade_191281333",
"tpTradeNo": "2021120322001492615754265829",
"osTradeNo": "trade_28367673307369472",
"tradeStatus": "SUCCESS",
"orderFee": 1,
"paymentFee": 1,
"remark": "这是remark",
"osMerchantCode" : "2293839381",
"osStoreCode" : "39819018",
"createdTime": 1638777264384,
"payTime": 1638777285405,
"payChannel": "ALI_PAY",
"payProduct": "CREDIT",
"title": "停车费",
"refundFee": 0,
"payBusiness": null,
"ownerBusinessNo": "3219231890321",
"ownerPayTerminal": "手机",
"ownerAppBuyerId": 2087123219218,
"buyerLoginId": "132****8866"
},
"error": null
}
code 为 8888 表示操作成功,其它值则为失败,具体内容参见错误码说明。