StableOps

Playground

在 StableOps 試驗場建立沙盒付款單,用瀏覽器錢包傳送測試網 USDC 或 USDT,並即時檢視轉帳被檢測、確認和最終完成的全過程;無需編寫程式碼即可熟悉真實請求、回應、支付指令、活動日誌與訂單狀態變化,為正式接入做好準備。

下方元件會在瀏覽器裡直接用你貼上的 sandbox API key 呼叫 StableOps API(@stableops/api-sdk):先建立 sandbox 付款單,再使用 @stableops/wallet-sdk 喚起瀏覽器錢包,在 Base Sepolia 測試網上傳送一筆真實 USDC 轉帳。線性走完 4 步即可觀察訂單從 created 推進到 finalized

  1. 建立付款單:走 POST /v1/payment-orders,帶 Idempotency-Key。返回裡的 payment_instructions 是分配給本訂單的候選入金地址列表。
  2. 錢包鏈上支付:前端呼叫 sendWalletPayment,由錢包傳送 ERC-20 transfer 到訂單地址。
  3. 等待 confirmed:不再手動推進;輪詢訂單,等待 scanner + confirmations watcher 自動把訂單推進到 confirmed
  4. 等待 finalized:繼續輪詢,等待達到finalized閾值;此時 ledger 與 webhook 才會標記終態。

在元件裡貼上你的 sandbox API key 即可開始。key 只儲存在你的瀏覽器。請使用測試網資產,不要在 playground 中傳送主網資金。每一步都會把最新訂單快照和活動日誌展開在下方,方便對照真實請求/回應結構。

请使用 sandbox key;它只保存在你的浏览器并直接发送给 API。生产环境请在服务端调用 API,不要在浏览器中调用。

开启时会在建单前为本订单导入一个确定性 burner 地址,适合 org 还没有任何收款地址的场景。如果你只想使用自己管理的地址,请关闭。

真实钱包交易,使用所选测试网;不要用主网资金。领测试币:Base Sepolia · USDC (testnet)

  1. idle
    1. 创建支付单
  2. idle
    2. 用钱包发起链上支付
  3. idle
    3. 等待 detected
  4. idle
    4. 等待 confirmed
  5. idle
    5. 等待 finalized
Activity log
(empty)
本 Playground 的原始碼託管在 GitHub:github.com/StableOps/stableops-playground,歡迎下載、試用與反饋。

實際生產裡發生了什麼

第 1 步與真實使用一致:你的服務透過 SDK 或 REST 呼叫 POST /v1/payment-orders。第 2 步就是 真鏈上的入金事件:瀏覽器錢包把穩定幣轉到訂單地址;scanner 按 (organizationId, environment, chain, address) 分桶拉日誌、歸一化後落 normalized_events,並把匹配上的訂單推進到 detected。第 3、4 步由 confirmations watcher 週期性比較 head - block_number 與每條鏈的 CONFIRMED_AFTER / FINALIZED_AFTER 閾值後自動推進,並對同一筆事務的 receipt.blockHash 與初次記錄做 reorg 校驗。

Playground 現在直接在瀏覽器裡用你提供的 sandbox API key 調 API(@stableops/api-sdk);鏈上支付、檢測、確認和終局都走真實鏈路。另外 Playground 僅執行在測試網,因此 Solana/TRON 的錢包支付直連公共 RPC 節點(Solana Devnet、TRON Nile)。這些節點免費但偶爾可能限流;若支付構造或廣播失敗,稍候重試即可。生產環境中結帳頁的主網 RPC 經 StableOps 商業節點代理轉發,沒有這個問題。

接入清單

  • Idempotency-Key 頭去重。同一 merchant_order_id 提交兩次永遠拿到同一筆訂單。
  • 本 playground 為演示用途,整段跑在瀏覽器裡且只用 sandbox key。生產環境請把 API key 放在你的後端、切勿在瀏覽器暴露生產 key;前端只用 @stableops/wallet-sdk 發起錢包轉帳。
  • 訂閱 payment.detected / payment.confirmed / payment.finalized / payment.reverted webhook;每條 delivery 在 worker 端用 IN_PROGRESS 搶鎖,重複投遞不會重複觸發你的處理邏輯。
  • 接收 webhook 時用 @stableops/api-sdk/webhooks 驗證簽名頭,避免重放。

繼續閱讀 快速開始 拿到完整程式碼示例。

這篇文件怎麼樣?

最後更新

本頁內容