基于单链环境下,开发者最常见的高频需求之一便是“交易状态查询”。本文将围绕OKX DEX API交易查询端点,手把手拆解如何通过查询交易状态接口,精准获取一笔订单的完整生命周期。无论你是正在对接DEX API的 dApp 工程师,还是筹划聚合器方案的产品经理,都能借此文档快速落地。
一、接口场景与核心价值
在兑换或Swap流程被触发后,用户最关心的三个字就是 —“稳了吗?”。
借助本接口,你可以:
- 10秒级别轮询判断是否已从
pending变为success/fail - 减少链上重试,降低无谓的 Gas 支出
- 实时通知前端/钱包,一旦交易确认即可解锁下一步操作(例如派息、跨链桥、NFT 铸造等)
二、端点速览
| 名称 | 值 |
|---|---|
| 动词 | GET |
| URL | https://web3.okx.com/api/v5/dex/aggregator/history |
| 限频 | 120 次/分钟/Key |
| 认证方式 | API Key(Header) |
三、请求参数与示例
若想拉回一笔交易全量细节,你需要提供三把“钥匙”:
- chainIndex:链唯一编号,例如
1代表 Ethereum - txHash:交易所属的事务哈希(即浏览器里的 Txn Hash)
- isFromMyProject(选填):若设为
true,则仅匹配当前 API Key 下的订单,可防误查他人交易
示例代码 (cURL)
curl -X GET \
'https://web3.okx.com/api/v5/dex/aggregator/history?chainIndex=1&txHash=0x72b51c1d22ec5b6...' \
-H 'OK-ACCESS-KEY: YOUR_KEY'四、响应字段全解
返回值均为 JSON;以下 关键字段 建议全部落库,方便后续审计或客服回溯。
- status
可取值:pending(正执行);success(成功上链);fail(回滚或失败)。 - txTime
Unix 毫秒时间戳,可用于计算到账时长与用户体验 KPI。 - fromTokenDetails / toTokenDetails
直接含最小单位(wei)数量与合约地址,无须二次换算。 - gasUsed & gasPrice & txFee
精准核算成本,助力前端提示“手续费已消耗 ≈ 3.2 USDT”。
五、场景示例:NFT 结算项目接入
设想一个 GameFi 结算 dApp:玩家二级市场购买皮肤后,系统需要确保资产先到手,再发放空投钥匙。流程如下:
- 玩家钱包签名、交易广播
- dApp 回调后,轮询
GET /history - 收到
status=success立即执行第二段合约调用,发放钥匙 NFT - 交易失败则回滚皮肤库存,防止“资产黑洞”
通过在链上观察 height 字段与 txFee,项目方甚至能够推演出“今日全网平均 Gas 价格”,动态调整用户提示,优化 UX。
六、常见问题(FAQ)
Q1:为何我收到的 status 一直是 pending?
A:说明链上尚未确认。多数链平均 3–30 秒即可落块;若长时间未变,可借助区块浏览器二次确认。
Q2:txHash 可以跨链检查吗?
A:不行!每条链 ID 独立;请保证 chainIndex 与 txHash 同链。
Q3:isFromMyProject=true 查询结果为空?
A:可能原因:
- API Key 误用测试环境;
- 确由其他项目下单;
- 交易是用旧接口(非 DEX 聚合器)发出。改用 false 先试排除。
Q4:如何计算用户的“实际到账”金额?
A:toTokenDetails.amount 减去 referalAmount 即为净到账。公式:
净到账 = parseFloat(toTokenDetails.amount) - parseFloat(referalAmount)Q5:是否支持 WebSocket 推送状态?
A:目前仅 REST 轮询;若需要实时长连接,可联系技术支持开通 Beta 计划。
七、调试锦囊:常见错误速排
- 错误码 4001:参数缺失 —— 检查是否漏传
chainIndex或txHash - 错误码 429:限频触发 —— 本地做“退避重试”或使用交易状态缓存库
- 错误码 403:签名无效 —— 通常为 API Key 与域名不匹配,需核对来源
八、下一步:将结果反哺前端体验
- 进度展示:结合
txTime与网络出块间隔,生成“预计 12 秒后完成”。 - 费用透明度:调用
gasPrice字段换算主币/USDT,用户一目了然。 - 交易深度链接:将
txHash拼接成区块浏览器超链接,便于用户自助查证明细。
至此,你已经掌握了 OKX DEX API 的“查询交易状态”全部玩法。开始构建更高效、更透明的链上用户体验吧!