TRONow商户后台 →
TRONow · 资料中心

可靠接入波场能量 API:幂等、回调与订单对账

从业务订单号到最终交付,介绍整数 SUN 精度、请求超时处理、重复回调与有界重试,帮助开发者避免重复下单和状态误判。

TRONow 审阅

先创建一笔本地业务订单

为业务操作生成唯一 client_order_id,在自己的数据库中先保存能量数量、租期与接收地址,并对业务编号建立唯一约束,防止并发任务重复创建。本篇描述接入参考实现,不代表某个客户的生产使用成果。

获取与下单参数一致的报价

通过 GET /prices/quote 查询实际资源数量与租期,将 quote_id、返回金额和 expires_at 一起保存。金额为整数 SUN 字符串,请使用整数或精确十进制类型。业务数量改变时重新报价,不要修改旧报价所对应的订单数量。

签名必须对应实际请求字节

签名凭据仅保存在服务端。请求体只序列化一次,按接口规范与参考客户端对实际发送的字节进行签名,避免“签一种 JSON,发另一种 JSON”。应用日志应隐藏密钥与认证请求头。

幂等键也要持久化

POST /orders 除 client_order_id 外,还要求 8–128 个可见 ASCII 字符组成的 Idempotency-Key。提交前保存幂等键与实际请求字节。重试结果不确定的创建请求时,保持二者不变,并生成新的时间戳、nonce 与签名。只有查清前次是否受理后,才能处理报价过期并重新发起。Webhook 验证规则见公开 Skill;地址激活没有回调,应通过查单跟踪。

处理结果不确定的下单请求

使用原 client_order_id 调用 POST /orders。连接超时后,优先通过 GET /orders?client_order_id={client_order_id} 查单。已存在的订单应继续跟踪,不应换新业务编号重复提交。如果适合重试,保留相同编号及请求语义;幂等冲突应作为业务异常排查。

区分受理、处理中与完成

保存平台订单号及返回状态,依据文档中的终态与交付证据更新本地履约状态。HTTP 成功本身不能证明能量已委托。保留失败和待审核状态,让人员能处理异常,避免静默循环或重复记账。

回调验签并去重

按接口规范验证 Webhook,拒绝签名无效的通知,在应用状态变更前按事件编号去重。事件可靠落库或处理完成后再确认接收。应容忍重复投递,本地状态与远端不一致时通过查单接口对账。

控制重试并保留可追踪记录

设置请求超时、带上限的指数退避与有限重试次数。记录 client_order_id、平台订单号、状态变化及不含秘密的错误码。未决订单使用应用队列或定时对账处理,不要在浏览器高频轮询。

上线前验证异常分支

在受控环境检查余额不足、报价过期、业务编号重复、受理后超时、重复回调及错误签名。每种情况都应最多产生一笔预期业务订单,且本地记录能说明处理经过。下方规范与客户端描述真实接口格式,本文不承诺所有语言都有 SDK。

开发者接入资料

公开接口规范与服务端参考客户端,无需登录即可阅读;实际调用 API 仍需已开通的商户账户。

https://api.tronow.io/openapi/v1

HTTPAPI
GET/prices/quote
POST/orders
GET/orders
GET/orders/{order_id}
POST/address-activations
GET/address-activations
GET/address-activations/{activation_id}
GET/account/balance