前提条件
Dodo Payments APIを統合するには、次のものが必要です。- Dodo Payments merchant account
- ダッシュボードから取得した API Credentials(API key と webhook secret key)
ダッシュボードの設定
- Dodo Payments Dashboard に移動します
- 商品を作成します(1回払いまたはサブスクリプション)。サブスクリプション商品は少なくとも $1(または選択した通貨での相当額)に設定する必要があります。この最低額を下回る金額はサポートされていません。
-
API key を生成します。
- Developer > API に移動します
- 詳細ガイド
- DODO_PAYMENTS_API_KEY という env に API key をコピーします
-
Webhooks を設定します。
- Developer > Webhooks に移動します
- payment notifications 用の webhook URL を作成します
- env に webhook secret key をコピーします
統合
Payment Links
ユースケースに合った統合方法を選択してください。- Checkout Sessions(推奨):ほとんどの統合に最適です。サーバー上でセッションを作成し、安全なホスティング型チェックアウトに顧客をリダイレクトします。
- Overlay Checkout:サイト上でチェックアウトをモーダルオーバーレイとして開く、ページ内エクスペリエンスが必要な場合に使用します。
- Inline Checkout:ページレイアウトにチェックアウトを直接埋め込み、完全に統合されたブランド対応のチェックアウトエクスペリエンスを実現します。
- Static Payment Links:コード不要で、すぐに共有できるURLです。支払いをすばやく収集できます。
- Dynamic Payment Links:プログラムで作成するリンクです。ただし、Checkout Sessionsのほうが推奨され、より柔軟性があります。
- Mobile Checkout SDKs:ネイティブAndroid、iOS、React Native、Flutterアプリ向けです。上記のようにサーバー上でセッションを作成し、その後
checkout_urlをSDKに渡します。
Overlay CheckoutとInline Checkoutはブラウザ専用です。チェックアウトをWeb
ページに埋め込みます。ネイティブモバイルアプリを構築している場合は、サーバー上で
チェックアウトセッションを作成し、代わりに
Mobile Checkout SDKsで開いてください。
1. Checkout Sessions
Checkout Sessionsを使用すると、1回払いまたはサブスクリプション向けに、安全なホスティング型チェックアウトエクスペリエンスを作成できます。サーバー上でセッションを作成し、返されたcheckout_urlに顧客をリダイレクトします。
チェックアウトセッションは、デフォルトで24時間有効です。
confirm=trueを渡すと、セッションは15分間有効になり、必須フィールドをすべて指定する必要があります。1
Create a checkout session
希望するSDKを選択するか、REST APIを呼び出します。
- Node.js SDK
- Python SDK
- REST API
2
Redirect customer to checkout
セッションを作成したら、
checkout_urlにリダイレクトしてホスティング型フローを開始します。2. Overlay Checkout
ページを離れることなく顧客が支払いを完了できる、シームレスなページ内チェックアウトエクスペリエンスには、Overlay Checkout統合をご利用ください。3. Inline Checkout
ページに直接埋め込んだ完全統合型のチェックアウトエクスペリエンスには、Inline Checkout統合をご利用ください。これにより、カスタム注文概要を作成し、チェックアウトレイアウトを完全に制御できます。一方、Dodo Paymentsが支払いの収集を安全に処理します。4. Static Payment Links
Static payment linksを使用すると、シンプルなURLを共有してすばやく支払いを受け付けられます。クエリパラメータを渡すことで、顧客情報の事前入力、フォームフィールドの制御、カスタムメタデータの追加など、チェックアウトエクスペリエンスをカスタマイズできます。1
Construct your payment link
ベースURLから開始し、商品IDを追加します。
2
Add core parameters
必須のクエリパラメータを含めます。
-
integerデフォルト:"1"購入する商品の数。
-
string必須支払い完了後にリダイレクトするURL。
リダイレクトURLには、次の例のようにクエリパラメータとして支払いの詳細が含まれます。
商品でライセンスキーが有効になっている場合は、
https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.com商品でライセンスキーが有効になっている場合は、
license_keyパラメータも追加されます(複数のキーの場合はカンマ区切り)。https://example.com/?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com3
Pre-fill customer information (optional)
4
Control form fields (optional)
特定のフィールドを無効にして、顧客が読み取り専用にすることができます。これは、ログイン済みユーザーなど、顧客の詳細情報をすでに取得している場合に便利です。
disable…フラグをtrueに設定します。- Disable Flags Table
showDiscounts=falseを設定すると、チェックアウトフォームの割引セクションが無効になり、非表示になります。チェックアウト中に顧客がクーポンコードやプロモーションコードを入力できないようにする場合に使用します。5
6
Share the link
完成した payment link を customer に送信します。customer がアクセスすると、すべての query parameters が収集され、session ID とともに保存されます。その後、URL は session parameter のみを含む簡潔な形式に変更されます(例:
?session=sess_1a2b3c4d)。保存された情報は page refresh 後も保持され、checkout process 全体を通じてアクセスできます。customer の checkout experience は、指定した parameters に基づいて、より streamlined かつ personalized になります。
4. Dynamic Payment Links
API call または customer details を指定した SDK で作成します。例を示します。 dynamic payment links を作成する API は 2 つあります。- One-time Payment Link API API reference
- Subscription Payment Link API API reference
payment link を取得するには
payment_link = true を渡していることを確認してください。- Node.js SDK
- Python SDK
- Go SDK
- Api Reference
payment link の作成後、customer を redirect して支払いを完了してもらいます。
Webhooks の実装
payment notifications を受信する API endpoint を設定します。以下は Next.js を使用した例です。Listen する Events
payload.type を有効にし、one-time payment flow に関連する events を処理します。最低限、以下を listen してください。
license keys 付きの digital products を販売する場合は、
license_key.created も処理してください。subscription、entitlement、credit、recovery、dunning events を含む全 events の一覧については、Webhook Event Guide を参照してください。
Next.js と TypeScript を使用した demo implementation の project は、GitHub で参照できます。
live implementation はこちらで確認できます。
Checkout と Currency について知っておくべき主な事項
Checkout sessions は 24 時間で expire します(
confirm: true の場合は 15 分)。また、各 checkout_url は single-use です。link を再利用するのではなく、customer ごと、payment attempt ごとに新しい session を生成してください。ワンクリックで repeat purchase。 保存済みの payment method がある returning customer の場合、
payment_method_id を confirm: true とともに渡すと、method selection を完全に省略して即時に請求できます。関連 API Reference
Create Checkout Session
one-time payments と subscriptions 用の secure な hosted checkout sessions を作成するための API reference
Create Payment Link
dynamic payment links を programmatically に作成するための API reference