跳到主要内容

Webhook 与通知

跟踪订单很简单:随时调用 GET /order/{id} 即可获取它的当前状态——大多数集成只需要这些。

Webhook 是可选的。 如果你不想轮询,TRONAgg 可以在订单完成或失败的那一刻向你推送一条带签名的 JSON 事件,你在收到时更新自己的记录即可。只有在你更偏好推送而非轮询时,才需要配置它。

轮询还是订阅——由你选择

轮询 GET /order/{id} 效果很好,且无需任何配置。Webhook 只是一种便利,适合你更希望被推送而不是主动轮询的场景。

渠道​

通知通过以下两种渠道之一送达;两者的事件与偏好设置完全相同:

  • Webhook——向你的后端发送带签名的 JSON POST。面向开发者与自动化。
  • Telegram——在 Telegram 聊天中收到易读的提醒。无需代码。

配置 Webhook​

Webhook 有两种创建方式。

账户的净确认充值必须超过 1 TRX,才能创建 Webhook:已确认的充值减去提现(金额加手续费)。购买不会减少该数值;提现会减少它,除非提现最终被拒绝、取消或失败。从另一个 TRONAgg 账户提现到你的充值地址不算作充值。在满足要求之前,POST /webhooks 返回 400 webhook_deposit_required:其 total_deposited_sun 字段是这一净值,required_total_deposited_sun 为 1000001。

在工作台中(无需代码):

  1. 打开 工作台 → 通知 → 发送方式 → Webhook → 连接。
  2. 填写名称和一个返回 2xx 的 HTTPS URL(见 URL 要求)。
  3. 复制签名密钥——它只显示一次。请将其作为服务端机密保存;验证每一次投递都需要它。
  4. 在 通知 标签页中选择哪些事件发往该 Webhook。在工作台中创建的 Webhook,订单跟踪(order.status_changed)初始为关闭——请在这里开启。用 发送测试 发出一条示例投递,用 最近发送记录 查看最近的投递尝试。

通过 API——用你的 API 密钥调用 POST /webhooks。签名密钥只在响应中返回一次,请立即保存。以这种方式创建的 Webhook 默认启用订单跟踪(order.status_changed)——大多数集成需要的事件——其余事件沿用相同的按事件默认值,你可以在工作台中调整。用 GET /webhooks、DELETE /webhooks/{id}(只删除 Webhook;你的 Telegram 渠道在工作台中管理)和 POST /webhooks/{id}/test 管理 Webhook。

URL 要求​

  • 仅限 HTTPS。
  • 公网主机。 主机只能解析到公网 IP 地址——不能是私有、回环、链路本地、保留或组播地址段。localhost、*.local 和 tronagg.ai 主机会被拒绝。创建 Webhook 时会检查,每次投递和测试前也会再次检查;投递到不再满足要求的主机会被计为失败。
  • 不跟随重定向。 重定向不会被跟随——3xx 计为投递失败,因此请注册最终 URL。
  • 去除末尾斜杠。 末尾的 / 会被去掉:https://example.com/hook/ 将以 https://example.com/hook 保存和调用。请确保你的端点在不带斜杠的路径上响应。
  • 每个 URL 只能注册一个 Webhook,每个账户最多 10 个 Webhook。
  • 在 10 秒内响应,并返回 2xx 状态码。

通过 API 时,被拒绝的 URL、重复的 URL 或第 11 个 Webhook 会返回 400 validation_error,并在 message 中说明原因。

你会收到什么​

每次投递都是一个带签名的 JSON POST,携带一个事件:一个信封(id、type、created_at、audience、data)加上带签名的请求头。在信任任何投递之前,务必先验证签名,并按事件 id 去重——同一事件可能到达不止一次。失败的投递会在大约 2.5 小时内最多再重试 4 次,之后被丢弃;因此如果你不能错过任何状态,请用 GET /order/{id} 对账。

Webhook 事件 参考页是完整目录:投递信封与请求头、重试、签名验证方法、每个事件及其示例负载,以及哪些事件默认开启。未来可能新增事件,因此请忽略你不认识的事件类型。大多数集成需要的是 order.status_changed——轮询 GET /order/{id} 之外的推送方案。

下一步​