常見問題
訂單何時過期,以及一直收不到款會怎樣
瞭解 StableOps 付款訂單何時過期、payment.expired Webhook 在什麼條件下觸發,以及系統如何釋放收款地址;文件也說明轉帳在截止時間後才上鍊時為何不會自動恢復訂單,以及商戶應如何核查並人工處理遲到付款。
每個付款訂單都帶有 expiresAt 時間戳。如果在此之前沒有匹配的轉帳到帳,訂單會被推進到 expired,併傳送 payment.expired webhook。
過期是如何處理的
一個後台 worker 以較短的固定週期(約每分鐘一次)掃描過期訂單,因此訂單會在 expiresAt 過後不久翻轉為 expired,而非精確到那一秒。每次過期都在一個事務中完成:
- 把訂單從
created推進到expired, - 將分配給它的地址釋放回地址池,
- 入隊一條
payment.expiredwebhook。
只有仍處於 created 的訂單會過期。一旦訂單到達 detected、confirmed 或 finalized,過期時間便不再生效。已在途的付款絕不會僅因超時而被丟棄。
過期之後才到帳的付款
如果客戶在訂單過期後才付款,這筆轉帳不會讓訂單復活:
- 訂單已不再是
created,精確匹配規則無法推進它。 - 該地址可能已被釋放並被另一筆訂單複用。
請像處理任何打錯的轉帳一樣,針對資金實際落地的地址自行對帳或退款。使用 BYO 地址時,這些資金就在你控制的地址裡。
如何選擇過期視窗
- 視窗要長到足夠一個真人開啟錢包、複製金額並等轉帳確認。幾分鐘通常太緊,15~60 分鐘是常見區間。
- 也不要設得過長,以免被放棄的訂單(在單地址模式下)長時間佔用地址。
- 如果在任何人付款前你已不再需要某筆訂單,請取消它,而不是等它過期。取消同樣會釋放地址併發出
payment_order.canceled。只有仍處於created的訂單可被取消。
expired 與 canceled 的區別
| 狀態 | 觸發條件 | 發出的事件 |
|---|---|---|
expired | expiresAt 已過且無匹配轉帳 | payment.expired |
canceled | 訂單仍為 created 時你呼叫了取消介面 | payment_order.canceled |
兩者都會釋放訂單仍持有的地址。
相關
這篇文件怎麼樣?
最後更新