GitHubリポジトリ
最小限のGo + Dodo Paymentsボイラープレート
概要
Goボイラープレートは、Dodo PaymentsをGoバックエンドに統合するための生産準備が整った出発点を提供します。このテンプレートには、チェックアウトセッションの処理、Webhookの検証、顧客ポータルの統合が含まれており、迅速に支払いを受け入れるためのGoのベストプラクティスに従っています。このボイラープレートは、クリーンアーキテクチャパターン(
cmd、internal、templates)、HTMLテンプレート、およびシームレスなAPI統合のためのdodopayments-go SDKを使用しています。特徴
- クイックセットアップ - 5分以内で開始
- 決済統合 -
dodopayments-goSDKを使用した事前設定済みのチェックアウトフロー - モダンUI - HTMLテンプレートを使用したクリーンでダークテーマの価格ページ
- Webhook処理 - 決済イベントを安全に検証および処理
- カスタマーポータル - 自己管理型のサブスクリプション管理
- Goのベストプラクティス -
cmd、internal、およびtemplatesを使用したクリーンアーキテクチャ - 事前入力されたチェックアウト - UXを向上させるために顧客データを渡すデモ
前提条件
始める前に、次のものを用意してください:- Go 1.21+
- Dodo Paymentsアカウント(ダッシュボードからAPIおよびWebhookキーにアクセスするため)
クイックスタート
API資格情報を取得
Dodo Paymentsにサインアップし、ダッシュボードから資格情報を取得します:
- APIキー: ダッシュボード → 開発者 → APIキー
- Webhookキー: ダッシュボード → 開発者 → Webhooks
開発サーバーを実行
プロジェクト構造
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を作成します:
本番環境での考慮事項
トラブルシューティング
ビルドエラーまたは依存関係が不足しています
ビルドエラーまたは依存関係が不足しています
Goモジュールが正しくダウンロードされていることを確認してください:
チェックアウトセッションの作成に失敗
チェックアウトセッションの作成に失敗
一般的な原因:
- 無効な製品ID - Dodoダッシュボードに存在することを確認してください
.env内のAPIキーまたは環境設定が間違っている- 詳細なエラーメッセージについてサーバーログを確認してください
Webhookがイベントを受信していません
Webhookがイベントを受信していません
ローカルテストには、ngrokを使用してサーバーを公開します:Webhook URLをDodoダッシュボードでngrok URLに更新します。正しいWebhook検証キーで
.envファイルを更新することを忘れないでください。テンプレートが読み込まれません
テンプレートが読み込まれません
プロジェクトのルートディレクトリからサーバーを実行しているか、コード内でテンプレートパスが正しく設定されていることを確認してください。
詳細を学ぶ
Go SDK
完全なGo SDKドキュメント
Webhookドキュメント
すべてのWebhookイベントとベストプラクティスについて学ぶ
チェックアウトセッション
チェックアウトセッションの設定を詳しく見る
APIリファレンス
完全なDodo Payments APIドキュメント
サポート
ボイラープレートに関して助けが必要ですか?- 質問や議論のためにDiscordコミュニティに参加してください
- 問題や更新についてはGitHubリポジトリを確認してください
- サポートが必要な場合はサポートチームに連絡してください