inquiryTradeOrder (Only for B2C)

POST: /amsin/api/v1/business/account/inquiryTradeOrder

需要签名验签

集成商可使用此接口查询交易订单的上传结果。

接口结构

万里汇接口的报文结构包括:请求头、请求体、响应头和响应体。该章节主要介绍请求体和响应体的结构。关于请求头和响应头的更多信息,参见:

请求参数

字段名

数据类型

是否必填

描述

requestId

字符串

针对单次交易订单上传请求,由集成商指定的唯一请求号。

更多信息:

  • 此字段为业务幂等字段,可用于实现幂等检查。
  • 字段最大长度:64

sceneCode

字符串

业务场景代码。可取值如下:

  • CREATE_ORDERS_AND_ASSOCIATE:创建并一次性关联订单信息,适用于平台商直连模式。
  • CREATE_ORDERS_AND_ASSOCIATE_BIG_MERCHANT:创建并一次性关联大商户订单信息,适用于商户合作模式。
  • PAY_INTO_CHINA :适用于结汇场景。无须订单关联。

quotaAccumulationMethod

字符串

申报额度的累计方式。

可取值如下:

  • USER_ID :根据申报主体UID(即已入驻万里汇的用户ID)累积申报额度。
  • BATCH_NO :根据交易批次号累计申报额度。
  • RECEIVING_ACCOUNT :根据收款账户(RA)累计申报额度。
  • VIRTUAL_ACCOUNT:根据虚拟账户(VA)累计申报额度。
  • BENEFICIARY:根据收款人(即未入驻万里汇的外部平台用户)累计申报额度。

quotaAccumulationId

字符串

申报额度的累计标识。此字段的赋值规则如下:

  • quotaAccumulationMethod = USER_ID 时,传入交易卖家的用户ID
  • quotaAccumulationMethod = RECEIVING_ACCOUNT 时,传入交易卖家的收款账户(RA)
  • quotaAccumulationMethod = VIRTUAL_ACCOUNT 时,传入交易卖家的虚拟账户(VA)
  • quotaAccumulationMethod = BENEFICIARY 时,传入外部平台的用户ID
  • quotaAccumulationMethod BATCH_NO 时,传入平台侧订单批次号

tradeType

适用于B2C

字符串

有使用条件

贸易类型。当 quotaAccumulationMethod = BENEFICIARY sceneCode = PAY_INTO_CHINA 时,此字段为必填。

可取值如下:

  • GOODS:货物贸易
  • SERVICE:服务贸易

响应参数

字段名

数据类型

是否必填

描述

result

Result 对象

API 调用结果,即交易订单上传的请求结果。

requestId

字符串

针对单次交易订单上传请求,由集成商指定的唯一请求号。

更多信息:

  • 字段最大长度:64

batchStatus

字符串

请求批次状态。可取值如下:

  • PROCESSING:处理中
  • FINISHED:处理完成

tradeOrderResult

字符串

数组 <TradeOrderResult 对象>

所受理的交易订单信息,包括交易单号、订单状态等。

响应处理

集成商调用接口后,万里汇通过 result.resultStatus 字段返回集成商 API 调用结果。此字段的取值范围如下:

result.resultStatus

描述

S

API请求成功。

F

API请求失败。具体失败原因,参见结果码(即 result.resultCoderesult.resultMessage)。

U

API响应结果为U(未知)时,集成商需重试API请求。

重试策略:

  • 重试次数上限:7次
  • 重试时间间隔:5分钟、10分钟、20分钟、40分钟、80分钟、160分钟、320分钟

如果问题依旧,请联系万里汇技术支持。

结果码

result.resultCode

resultCode

resultStatus

resultMessage

resultMessage

中文含义

处理建议

SUCCESS

S

Success

成功

PARAM_ILLEGAL

F

Illegal parameters exist. For example, a non-numeric input, or an invalid date.

参数异常

修改订单信息、更换requestId,发起重试

UNKNOWN_EXCEPTION

U

The API call is failed, which is caused by unknown reasons.

未知错误

无需更换requestId,发起重试

CONTRACT_CHECK_FAIL

F

The contract check has failed.

合约状态异常

检查合约状态后重试

ACCOUNT_NOT_EXIST

F

The account does not exist.

账户不存在。

确认账户有效后重试。

ORDER_NOT_EXIST

F

The order does not exist.

订单不存在。

确认订单号有效后重试。

tradeOrderResult.errorCode

errorCode

errorMessage

处理建议

PARAM_ILLEGAL

Illegal parameters exist. For example, a non-numeric input, or an invalid date.

检查并确认请求字段是否正确有效,包括请求头和请求体字段。

TRADE_ORDER_SUBMITTED

trade order has been submitted before.

检查并确认交易订单先前是否上传过。如果是,请停止重复上传。

TRADE_ORDER_NOT_EXIST

The trade order does not exist.

使用正确的交易订单信息重传。

RISK_REJECT

The trade order is rejected for risk control reasons.

请联系万里汇技术支持以解决此问题。

PROCESS_FAIL

A general business failure occurred. Do not retry.

请联系万里汇技术支持以解决此问题。

代码示例

示例1:使用 USER_ID 查询

请求体

copy
{
    "requestId": "20230222191210001100300007*****",
  "sceneCode": "PAY_INTO_CHINA",
  "quotaAccumulationMethod": "USER_ID",
  "quotaAccumulationId": "21201200039*****"
}

响应体

copy
{
    "result": {
        "resultStatus": "S",
        "resultCode": "SUCCESS",
        "resultMessage": "success."
    },
    "batchStatus": "FINISHED",
    "tradeOrderResult": [
        {   
            "referenceOrderNo": "50957342066*****",
            "orderStatus": "AVAILABLE",
            "resultMessage": "Can be used for declaration.",
            "transAmount": {
                "currency": "USD",
                "value": "500"
            },  
            "tradeAmount": {
                "currency": "USD",
                "value": "500"
            },
            "remainAmount": {
                "currency": "USD",
                "value": "500"
            }
        }
    ]
}

示例2:使用 BENEFICIARY 查询

请求体

copy
{
    "requestId":"20230222191210001100300007*****",
    "sceneCode":"PAY_INTO_CHINA",
    "quotaAccumulationMethod":"BENEFICIARY",
    "quotaAccumulationId":"12334372*****",
    "tradeType":"SERVICE"
}

响应体

copy
{
    "result": {
        "resultStatus": "S",
        "resultCode": "SUCCESS",
        "resultMessage": "success."
    },
    "batchStatus": "FINISHED",
    "tradeOrderResult": [
        {   
            "referenceOrderNo": "50957342066*****",
            "orderStatus": "AVAILABLE",
            "resultMessage": "Can be used for declaration.",
            "transAmount": {
                "currency": "USD",
                "value": "500"
            },  
            "tradeAmount": {
                "currency": "USD",
                "value": "500"
            },
            "remainAmount": {
                "currency": "USD",
                "value": "500"
            }
        }
    ]
}

@2024 WorldFirst