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