ホステッドチェックアウト
決済の検証
アクセスを付与する前に、バックエンドで決済完了を確認します。
検証レスポンスがフルフィルメントの基準です。ブラウザのリダイレクトとポップアップメッセージは、信頼しないヒントとして扱います。
#バックエンドで検証
GET
/api/v2/checkout-sessions/{sessionId}/verify/セッション作成時に返されたサーバー専用検証キーで認証します。商品所有者は販売者 JWT でも呼び出せます。
curl https://app.rantan.xyz/api/v2/checkout-sessions/$SESSION_ID/verify/ \
-H "X-Rantan-Checkout-Verification-Key: $CHECKOUT_VERIFICATION_KEY"#検証レスポンス
セッション状態と紐づく購入状態を返します。開いている、または期限切れのセッションは completed=false です。
{
"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完了済み購入を確認
completed が true、purchase_status が completed であることを確認します。
- 2自社注文と照合
client_reference_id、product_id、数量、通貨、想定金額を保存済み注文と照合します。
- 3一度だけ使用
アクセス付与や発送前に purchase_id を一意制約付きで保存します。
- 4検証記録を保存
checkout_session_id、purchase_id、completed_at、検証金額を注文へ記録します。
#戻り URL のヒント
RANTAN は設定済み return_url に rantan_checkout_session_id、rantan_purchase_id、rantan_purchase_status を追加します。
#安全な再試行
検証は読み取り専用で再試行できます。purchase_id を基準に処理を冪等化し、繰り返しコールバックでアクセス、配送、クレジットが重複しないようにします。