paygate 是什么,以及跳过就会让你吃亏的四件事。
paygate 通过 HTTP API 和 Webhook 收取 USDT 付款。你的客户在托管页面上付款;你不用写任何 web3 代码,不用持有私钥,也根本接触不到钱包库。
下面的内容适用于每一种集成,无论你收取的是什么费用。
checkout_url——或者自行渲染付款路由。detected → confirming → paid。paid 并不是最终状态深度超过确认窗口的链重组,会把一笔已支付的付款变为 reversed,并发出 payment.reversed。如果你在收到 payment.paid 时就发货,那就是在知情的前提下承担这一风险——而且你可以提前演练:
curl -X POST https://api.paygatehq.com/v1/test/payments/{id}/reorg \
-H "Authorization: Bearer sk_test_..." \
-H "Idempotency-Key: $(uuidgen)" -d '{}'
如果你无法承受付款被撤销的损失,请改为等待 settled。
每个事件都带有一个稳定的 id。请据此去重。如果处理程序不是幂等的,那么在你返回的 200 第一次在回传途中丢失、投递随之被重试时,它就会给账户重复入账。
amount 以微单位表示(6 位小数)。amount_decimal 是同一个值的定点小数文本形式。
在 JSON 解析器会产生浮点数的语言中,请使用字符串——JavaScript 就是这样,这也是 25000000 / 1e6 不一定等于 25 的原因。参见金额。
Tron 上是 6 位,BSC 上是 18 位。API 始终使用微单位,所以你完全不必操心这一点;链上原始金额会按付款路由公布,供需要关心它的钱包使用。