# 交易接口

最新更新时间: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 表示操作成功,其它值则为失败,具体内容参见错误码说明。