メインコンテンツへスキップ

GitHub Repository

完全なソースコードとセットアップガイド

クイックセットアップ

1. 前提条件

2. 依存関係のインストール

3. データベースのセットアップ

  1. Neon に登録します
  2. 新しいプロジェクトを作成します
  3. SQL エディタを開きます
  4. schema.sql の内容をコピーして貼り付けます
  5. クエリを実行します
  6. Neon → Connection Details から接続文字列を取得します

4. 初期シークレットの設定

注: デプロイ後にウェブフック URL を取得してから DODO_PAYMENTS_WEBHOOK_KEY を設定します。

5. wrangler.tomlの更新

wrangler.toml を編集し、ワーカー名を設定します:

6. デプロイ

7. Webhook URLの取得

あなたのWebhook URLは:

8. DodoPaymentsダッシュボードでWebhookを登録

  1. DodoPayments Dashboard → Developer → Webhooks に移動します
  2. 新しい webhook エンドポイントを作成します
  3. エンドポイントとしてご自身の webhook URL を設定します
  4. 以下の購読イベントを有効にします:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Signing Secret をコピーします

9. Webhookキーを設定して再デプロイ

何をするか

サブスクリプションイベントを処理し、PostgreSQLに保存します:
  • subscription.active - 顧客とサブスクリプションのレコードを作成/更新
  • subscription.cancelled - サブスクリプションをキャンセルとしてマーク
  • subscription.renewed - 次の請求日を更新

主な機能

署名の検証 - dodopayments ライブラリを使用
冪等性 - webhook ID による重複処理の防止
イベントログ - webhook_events テーブルに完全な監査記録
エラー処理 - ログ記録および再試行可能
注: この実装は、最小限のフィールドで 3 つの主要な購読イベント (subscription.activesubscription.cancelledsubscription.renewed) を処理する方法を示しています。必要に応じて追加のイベントタイプやフィールドに簡単に拡張できます。

設定ファイル

データベーススキーマ

作成されたテーブル:
  • customers - メール、名前、dodo_customer_id
  • subscriptions - ステータス、金額、次の請求日、顧客にリンク
  • webhook_events - 冪等性のためのwebhook_idを持つイベントログ

実装コード

仕組み

Webhook ハンドラー:
  1. 署名を検証 - HMAC-SHA256 を使用して DodoPayments からのリクエストであることを確認します
  2. 重複をチェック - webhook ID を使用して同じイベントの二重処理を防ぎます
  3. イベントを記録 - 監査証跡のため webhook_events テーブルに生の webhook を保存します
  4. イベントを処理 - 顧客および購読を新規作成または更新します
  5. エラーを処理 - 障害を記録し、再試行用に未処理としてマークします

テスト

ローカル開発:
DodoPaymentsダッシュボードでの設定:
  1. 開発者 → Webhooksに移動
  2. ワーカーURLでエンドポイントを追加
  3. 有効にする: subscription.active, subscription.cancelled, subscription.renewed

一般的な問題

リソース

最終更新日 2026年5月22日