查询订单
API 说明
使用此 API 可以通过商户订单号查询现有订单的状态和详细信息。
接口信息
- 接口 URL:
POST /v2/queryOrder
- Content-Type:
application/json
- 认证: 需要在 Header 中传递
app-id
和签名验证
请求头参数
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
app-id | string | 是 | 商户应用 ID |
Content-Type | string | 是 | application/json |
请求参数
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
sign | string | 是 | 请求签名 |
outTradeNo | string | 是 | 要查询的商户订单号 |
响应参数
成功响应
{
"code": 0,
"data": {
"merchantUuid": "",
"appId": "app-caf118dc-4e23-4ced-ab23-8a3f65d5071a",
"merchantOrderNo": "ORDER_1754379719703_5951",
"orderNo": "1754379945757879200",
"tokenSymbol": "USD",
"tokenCount": "20",
"currencyId": "USD",
"payHash": "",
"payObject": "",
"state": "NON_PAYMENT",
"timestamp": 1754379719,
"timeExpire": 900,
"payTime": 0,
"callbackCount": 0,
"callbackState": ""
},
"msg": "success"
}
错误响应
{
"code": 1001,
"data": {},
"msg": "Order not found"
}
请求示例
cURL 示例
curl -X POST "/v2/queryOrder" \
-H "Content-Type: application/json" \
-H "app-id: your-app-id" \
-d '{
"sign": "c2lnbmF0dXJlX3Rlc3Q=",
"outTradeNo": "ORDER_1754379719703_5951"
}'
JavaScript 示例
const queryData = {
sign: "c2lnbmF0dXJlX3Rlc3Q=",
outTradeNo: "ORDER_1754379719703_5951"
};
fetch('/v2/queryOrder', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'app-id': 'your-app-id'
},
body: JSON.stringify(queryData)
})
.then(response => response.json())
.then(data => {
if (data.code === 0) {
console.log('订单已找到:', data.data.orderNo);
console.log('订单状态:', data.data.state);
console.log('代币数量:', data.data.tokenCount, data.data.tokenSymbol);
} else {
console.error('查询失败:', data.msg);
}
})
.catch(error => {
console.error('请求失败:', error);
});
Python 示例
import requests
import json
url = "https://api.chainpay.com/v2/queryOrder"
headers = {
"Content-Type": "application/json",
"app-id": "your-app-id"
}
query_data = {
"sign": "c2lnbmF0dXJlX3Rlc3Q=",
"outTradeNo": "ORDER_1754379719703_5951"
}
try:
response = requests.post(url, headers=headers, json=query_data)
result = response.json()
if result["code"] == 0:
order_data = result["data"]
print(f"订单已找到: {order_data['orderNo']}")
print(f"订单状态: {order_data['state']}")
print(f"代币数量: {order_data['tokenCount']} {order_data['tokenSymbol']}")
print(f"支付时间: {order_data['payTime']}")
else:
print(f"查询失败: {result['msg']}")
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
响应字段说明
成功响应字段
字段 | 类型 | 描述 |
---|---|---|
code | integer | 响应代码,0 表示成功 |
data | object | 订单数据 |
data.merchantUuid | string | 商户 UUID |
data.appId | string | 应用 ID |
data.merchantOrderNo | string | 商户订单号 |
data.orderNo | string | 系统生成的订单号 |
data.tokenSymbol | string | 代币符号(如 USD、USDT) |
data.tokenCount | string | 代币数量 |
data.currencyId | string | 货币 ID |
data.payHash | string | 支付交易哈希 |
data.payObject | string | 支付对象信息 |
data.state | string | 订单状态(NON_PAYMENT、PAID、EXPIRED 等) |
data.timestamp | integer | 订单创建时间戳 |
data.timeExpire | integer | 订单过期时间(秒) |
data.payTime | integer | 支付完成时间戳(未支付时为 0) |
data.callbackCount | integer | 回调尝试次数 |
data.callbackState | string | 回调状态 |
msg | string | 响应消息 |
订单状态值
状态 | 描述 |
---|---|
NON_PAYMENT | 订单已创建但未支付 |
PAID | 订单支付成功 |
EXPIRED | 订单已过期 |
CANCELLED | 订单已取消 |
REFUNDED | 订单已退款 |
错误响应字段
字段 | 类型 | 描述 |
---|---|---|
code | integer | 错误代码 |
data | object | 错误响应的空对象 |
msg | string | 错误消息描述 |
错误代码
代码 | 描述 |
---|---|
0 | 成功 |
1001 | 订单未找到 |
1002 | 无效签名 |
1003 | 无效参数 |
1004 | 缺少必需参数 |
1005 | 访问被拒绝 |