RANTANDocs
RANTAN を開く
ホステッドチェックアウト

決済の検証

アクセスを付与する前に、バックエンドで決済完了を確認します。

検証レスポンスがフルフィルメントの基準です。ブラウザのリダイレクトとポップアップメッセージは、信頼しないヒントとして扱います。

#バックエンドで検証

GET/api/v2/checkout-sessions/{sessionId}/verify/

セッション作成時に返されたサーバー専用検証キーで認証します。商品所有者は販売者 JWT でも呼び出せます。

Verify session
curl https://app.rantan.xyz/api/v2/checkout-sessions/$SESSION_ID/verify/ \
  -H "X-Rantan-Checkout-Verification-Key: $CHECKOUT_VERIFICATION_KEY"

#検証レスポンス

セッション状態と紐づく購入状態を返します。開いている、または期限切れのセッションは completed=false です。

200 OK
{
  "checkout_session_id": "c8a9d48e-68b2-48dd-a754-75635cae71d6",
  "client_reference_id": "order_20260730_001",
  "product_id": 123,
  "purchase_id": "bfaf2aa4-dd86-4356-92db-ae0431806867",
  "purchase_status": "completed",
  "completed": true,
  "buyer_wallet_address": "0x1234...abcd",
  "quantity": 1,
  "currency": "USDC",
  "total_amount": "12.50000000",
  "amount_atomic": "12500000",
  "completed_at": "2026-07-30T09:04:32Z",
  "error_message": "",
  "session_status": "completed",
  "canceled_at": null,
  "expires_at": "2026-07-30T09:30:00Z"
}

#フルフィルメントのチェックリスト

  1. 1
    完了済み購入を確認

    completed が true、purchase_status が completed であることを確認します。

  2. 2
    自社注文と照合

    client_reference_id、product_id、数量、通貨、想定金額を保存済み注文と照合します。

  3. 3
    一度だけ使用

    アクセス付与や発送前に purchase_id を一意制約付きで保存します。

  4. 4
    検証記録を保存

    checkout_session_id、purchase_id、completed_at、検証金額を注文へ記録します。

#戻り URL のヒント

RANTAN は設定済み return_url に rantan_checkout_session_id、rantan_purchase_id、rantan_purchase_status を追加します。

#安全な再試行

検証は読み取り専用で再試行できます。purchase_id を基準に処理を冪等化し、繰り返しコールバックでアクセス、配送、クレジットが重複しないようにします。