入账判断
为什么 10 个区块即可认为到账?基于 Ethereum 2.0 Beacon Chain 的 Finalize 机制,10 个区块后交易被回退的概率已极低。官方建议的完全确认为 100 个区块(15-20 分钟),但 10 个区块已满足绝大多数业务场景的安全要求。
Payload 示例
字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
event_id | string | 事件唯一标识 |
type | string | 事件类型(wallets.transaction.created / updated / succeeded) |
created_timestamp | number | 事件创建时间戳(毫秒) |
data.transaction_id | string | 交易唯一标识 |
data.wallet_id | string | 商户钱包 ID |
data.type | string | 交易类型(Deposit = 充值) |
data.status | string | 交易状态(Confirming / Completed) |
data.source.addresses | array | 充值来源地址(终端用户的地址) |
data.destination.amount | string | 充值金额 |
data.destination.address | string | 充值目标地址(商户的收款地址) |
data.chain_id | string | 链标识 |
data.token_id | string | 代币标识 |
data.confirmed_num | number | 当前区块确认数 |
data.confirming_threshold | number | 所需最小确认数 |
data.transaction_hash | string | 链上交易哈希 |
data.block_info | object | 区块信息(区块号、时间戳) |
data.timeline | array | 状态变更时间线 |
处理建议
幂等处理
幂等处理
同一笔充值可能触发多次 Webhook(created → updated → succeeded)。请使用
transaction_id 做幂等判断,避免重复入账。验证 wallet_id
验证 wallet_id
收到事件后,先校验
data.wallet_id 是否为您的项目钱包,非本项目的事件应忽略。对账兜底
对账兜底
除 Webhook 外,建议定期调用 交易记录 接口做对账兜底,防止 Webhook 丢失。

