# 单笔订单交易查询

最新更新时间:2023.06.13

查询交易订单结果

# 接口说明

请求URL: https://{domain}/os-base/query/trade/v1/open

请求方式: POST

公共请求参数

参数名 必填 类型 说明
access_id 是 string 开发者唯一标识
sign_type 是 string 固定传RSA2
time_stamp 是 long 请求时间,Linux时间戳,单位毫秒
sign 是 string 签名结果
data 是 string 将业务参数转为JSON字符串,然后使用BASE64编码的数据

详细签名方法请阅读接口加密方案


业务请求参数

名称 必填 类型 说明
ownerTradeNo 条件必填 string 商户传给开放平台的交易订单号, 与osTradeNo至少传一个
osTradeNo 条件必填 string 开放平台为商户生成的交易订单号, 与ownerTradeNo至少传一个

公共响应参数

名称 必传 类型 说明
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:微信,CMB:招行一网通
payProduct 是 string 支付产品类型
APP:手机App客户端;
MINI_APP:小程序;
M_WEB:手机网页支付;
PC_WEB:电脑网页支付;
USER_QR:用户扫描商家二维码支付;
MCH_QR:商家扫描用户付款码支付;
FACE:刷脸付;
H5:网页支付;
CREDIT:先离场后付费
title 是 string 支付标题
callbackUrl 否 string 回调地址,请求交易下单传参则有值
refundFee 是 int 退款金额,单位为分
payBusiness 否 string 业务类型,请求交易下单传参则有值
ownerBusinessNo 否 string 商户维护:商户创建的订单业务号,商户自传,支付回调原封返回
ownerPayTerminal 否 string 商户支付终端,商户自传,支付回调原封返回
ownerAppBuyerId 否 string 商户应用对应用户ID,openId
buyerLoginId 否 string 买家在支付机构的登录账号

SDK方法

// 创建上传数据client
TyhPaymentClient client = TyhPaymentClient.create(TyhOptions.builder()
                .accessId(ACCESS_ID)
                .secretKey(SECRET_KEY)
                .allowUpload(Boolean.TRUE)
                .build());

// 构建查询交易订单的请求参数
TradeQuery query = TradeQuery.builder()
                .ownerTradeNo("3213213123")
                .osTradeNo("31239128112")  //两个参数二选一,至少传一个
                .build();

// 开始发起请求
try {
     Results<TradeQueryResultDto> results = client.tradeQuery(query);
     // 获取支付查询结果
     TradeQueryResultDto dto = results != null && results.ifSuccess() ? results.getData() : null;
} catch (Exception e) {
     e.printStackTrace();
}
     

入参格式

{
    "ownerTradeNo" : "owner_trade_32192182",
    "osTradeNo" : "329121821"
}

出参格式:

{
  "code": 8888,
  "msg": "处理成功",
  "data": {
    "ownerTradeNo": "test_trade_191281333",
    "tpTradeNo": "2021120322001492615754265829",
    "osTradeNo": "trade_28367673307369472",
    "tradeStatus": "SUCCESS",
    "orderFee": 1,
    "paymentFee": 1,
    "remark": "123",
    "osMerchantCode": "2163737276721967",
    "osStoreCode": "3163757684139653",
    "createdTime": 1638777264384,
    "payTime": 1638777285405,
    "payChannel": "ALI_PAY",
    "payProduct": "USER_QR",
    "title": "停车费",
    "callbackUrl": "以https开头的支付通知回调地址",
    "refundFee": 0,
    "payBusiness": null,
    "ownerBusinessNo": "3219231890321",
    "ownerPayTerminal": "手机",
    "ownerAppBuyerId": 2087123219218,
    "buyerLoginId": "132****8866"
  },
  "error": null
}

code 为 8888 表示操作成功,其它值则为失败,具体内容参见错误码说明。