GitHub Repository
Minimal Go + Dodo Payments ボイラープレート
概要
Goボイラープレートは、Dodo PaymentsをGoバックエンドに統合するための生産準備が整った出発点を提供します。このテンプレートには、チェックアウトセッションの処理、Webhookの検証、顧客ポータルの統合が含まれており、迅速に支払いを受け入れるためのGoのベストプラクティスに従っています。このボイラープレートは Go 1.21+ をクリーンアーキテクチャのパターン(
cmd、internal、templates)、HTML テンプレート、および dodopayments-go SDK を使用してシームレスな API 統合を実現します。特徴
- Quick Setup - 5分以内で開始できます
- Payment Integration -
dodopayments-goSDK を使った事前構成済みのチェックアウトフロー - Modern UI - HTML テンプレートによるクリーンでダークテーマの価格ページ
- Webhook Handling - 支払いイベントを安全に検証および処理
- Customer Portal - セルフサービスのサブスクリプション管理
- Go Best Practices -
cmd、internal、およびtemplatesを取り入れたクリーンアーキテクチャ - Pre-filled Checkout - 顧客データを渡して UX を向上させる例
前提条件
始める前に、次のものを用意してください:- Go 1.21+
- Dodo Paymentsアカウント(ダッシュボードからAPIおよびWebhookキーにアクセスするため)
クイックスタート
Get API Credentials
Dodo Payments にサインアップし、ダッシュボードから認証情報を取得してください:
- APIキー: ダッシュボード → 開発者 → APIキー
- Webhookキー: ダッシュボード → 開発者 → Webhooks
Run the Development Server
プロジェクト構造
APIエンドポイント
ボイラープレートには、次の事前設定されたエンドポイントが含まれています:| エンドポイント | メソッド | 説明 |
|---|---|---|
/ | GET | 商品一覧付きの価格ページ |
/api/checkout | POST | 新しいチェックアウトセッションを作成 |
/api/webhook | POST | Dodo Payments のWebhookを処理 |
/api/customer-portal | POST | カスタマーポータルのURLを生成 |
カスタマイズ
製品情報の更新
internal/lib/products.go を編集して変更できます:
- 商品 ID(Dodo ダッシュボードから取得)
- 価格設定
- 機能
- 説明
顧客データの事前入力
templates/index.html 内のハードコードされた顧客データを実際のユーザーデータに置き換えてください:
Webhookイベント
このボイラープレートではinternal/api/webhook.go でWebhookイベントを処理する方法を示しています。サポートされているイベントは以下の通りです:
| イベント | 説明 |
|---|---|
subscription.active | サブスクリプションがアクティブになったときにトリガーされる |
payment.succeeded | 支払いが成功したときにトリガーされる |
- データベース内のユーザー権限を更新
- 確認メールを送信
- デジタル製品へのアクセスを提供
- 分析とメトリクスを追跡
Webhookをローカルでテスト
ローカル開発には、ngrokのようなツールを使用してローカルサーバーを公開します:デプロイメント
本番用にビルド
Vercelにデプロイ
[Docker
Dockerfile を作成してください:
本番環境での考慮事項
トラブルシューティング
Build errors or missing dependencies
Build errors or missing dependencies
Go モジュールが正しくダウンロードされていることを確認:
Checkout session creation fails
Checkout session creation fails
よくある原因:
- 無効な商品 ID - Dodo ダッシュボードに存在することを確認
.envに間違った API キーまたは環境設定- 詳細なエラーメッセージについてはサーバーログを確認
Webhooks not receiving events
Webhooks not receiving events
ローカルテストでは、ngrok を使ってサーバーを公開してください:Webhook の URL を Dodo ダッシュボード で ngrok の URL に更新してください。
.env ファイルも正しい webhook 検証キーで更新することを忘れずに。Templates not loading
Templates not loading
プロジェクトのルートディレクトリからサーバーを起動している、またはコード内でテンプレートのパスが正しく設定されていることを確認してください。
詳細を学ぶ
Go SDK
Go SDK の完全なドキュメント
Webhooks Documentation
すべての webhook イベントとベストプラクティスを学ぶ
Checkout Sessions
チェックアウトセッション構成の詳細を確認
API Reference
Dodo Payments API の完全ドキュメント
サポート
ボイラープレートに関して助けが必要ですか?- 質問や議論のためにDiscordコミュニティに参加してください
- 問題や更新についてはGitHubリポジトリを確認してください
- サポートが必要な場合はサポートチームに連絡してください