# 交易接口

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