Skip to main content
@dodopayments/nuxt モジュールは、Nuxt アプリに 3 つの server route handlers を提供します。checkoutHandler は checkout URLs を返し、customerPortalHandler は customer を Customer Portal に送信し、Webhooks は webhook events を検証してコードにルーティングします。

Checkout API Route

Nuxt server route から checkout URL を作成します。

Customer Portal API Route

Nuxt server route から、顧客がサブスクリプションと詳細を管理できるようにします。

Webhooks API Route

Nuxt で Dodo Payments webhook イベントを受信して検証します。

概要

このモジュールは handlers を Nuxt server auto-imports として登録するため、server routes では import statements なしで checkoutHandler、customerPortalHandler、Webhooks を呼び出せます。各 route は runtimeConfig から credentials を読み取ります。Nuxt は runtimeConfig.public のみを browser に公開するため、API key と webhook secret は server 上に保持されます。

インストール

1

Install the Nuxt Module

この command を project root で実行します。
このモジュールは、peer dependencies として Nuxt 3(3.13.1 以降)と zod 3.25 以降を指定しています。
2

Register the Module in nuxt.config.ts

@dodopayments/nuxt を modules array に追加し、credentials を runtimeConfig にマッピングします。
nuxt.config.ts
これらの environment variables を設定します。たとえば project root の .env file に設定できます。ビルド済みの Nuxt server は .env file を読み取りません。runtime では、Nuxt は path に対応する variable のみから runtimeConfig value を上書きします。たとえば private.returnUrl に対しては NUXT_PRIVATE_RETURN_URL が使用されます。そのため、これらの variables は hosting environment にも設定してください。
.env file や secrets を version control に commit しないでください。

API Route Handler の例

この examples では、server/routes/api/ directory に server routes を作成します。Nuxt は各 file をその name と method suffix に基づいて routes として扱うため、checkout.get.ts は GET /api/checkout を処理します。
この handler を使用して、Dodo Payments checkout を Nuxt app に追加します。GET route は static checkout を提供します。POST route は checkout sessions、または type: "dynamic" を設定した場合は dynamic checkout を提供します。
static checkout 用の GET route を作成します。
checkout.post.ts は 1 つの POST flow を提供します。dynamic checkout example または checkout session example のいずれかを使用します。
productId が欠落しているか invalid の場合、handler は 400 response を返します。
routes を test するには、次の requests を送信します。

Checkout Route Handler

checkout handler は、Dodo Payments で payments を受け付ける 3 つすべての方法をサポートします。
  • Static Payment Links: code なしで payments を収集できる shareable URLs。
  • Dynamic Payment Links: custom details を指定して生成する payment links。deprecated endpoints を使用します。
  • Checkout Sessions: product cart、customer details、customization options を備えた hosted checkout。推奨される flow です。
checkoutHandler は次の options を受け取ります。

サポートされる Query Parameters

string
必須
Product identifier。たとえば ?productId=pdt_nZuwz45WAs64n3l07zpQR。
integer
デフォルト:"1"
Product の quantity。
string
Customer の full name。firstName または lastName が指定されている場合は無視されます。
string
Customer の first name。
string
Customer の last name。
string
Customer の email address。
string
Customer の country(ISO 3166-1 alpha-2 code)。
string
Customer の address line。
string
Customer の city。
string
Customer の state または province。
string
Customer の ZIP または postal code。
boolean
true に設定すると、full name field を無効にします。
boolean
true に設定すると、first name field を無効にします。
boolean
true に設定すると、last name field を無効にします。
boolean
true に設定すると、email field を無効にします。
boolean
true に設定すると、country field を無効にします。
boolean
true に設定すると、address line field を無効にします。
boolean
true に設定すると、city field を無効にします。
boolean
true に設定すると、state field を無効にします。
boolean
true に設定すると、ZIP code field を無効にします。
string
Payment currency。たとえば USD。
boolean
デフォルト:"true"
Currency selector を表示または非表示にします。
number
請求額を major currency units で固定します。たとえば $12.50 の場合は 12.5 です。Pay What You Want products でのみ機能し、product の minimum price 未満の場合は無視されます。
boolean
デフォルト:"true"
Discounts section を表示または非表示にします。
string
metadata_ で始まる query parameter は metadata として渡されます。
handler は config の returnUrl を redirect_url として link に追加します。
productId が欠落している場合、handler は 400 response を返します。Invalid query parameters と存在しない product IDs も 400 を返します。

Response Format

Static checkout は checkout URL を含む JSON response を返します。test mode では URL に test.checkout.dodopayments.com を使用します。
Dynamic checkout は deprecated な POST /payments と POST /subscriptions endpoints を proxy します。既存の integrations では引き続き動作しますが、新しい integrations では checkout sessions を使用してください。

Response Format

Dynamic checkout は checkout URL を含む JSON response を返します。
Checkout sessions は、customization を完全に制御しながら、one-time purchases と subscriptions 用の hosted checkout を作成します。product_cart は唯一の required field です。body に return_url がない場合、handler は config の returnUrl を使用します。詳細とサポートされるすべての fields については、Checkout Sessions Integration Guide を参照してください。payment_method_id で作成した session は checkout URL を返さないため、handler は 400 を返します。保存済みの payment method に請求するには、代わりに SDK で session を作成してください。

Response Format

Checkout sessions は checkout URL を含む JSON response を返します。

Customer Portal Route Handler

Customer Portal route handler は、指定された customer 用の Customer Portal session を作成し、browser をそこへ redirect します。
handler は誰が呼び出しているかを確認しません。customer ID を指定して request した人は誰でも、その customer の portal を取得できます。独自の authentication で route を保護し、signed-in user の customer ID のみを渡してください。

Query Parameters

string
必須
portal session の customer ID。たとえば ?customer_id=cus_123。
boolean
true に設定すると、Dodo Payments は portal link を customer にも email で送信します。
@dodopayments/nuxt 0.2.11 以降では、customer_id がない場合、ハンドラーは HTTP 400 を返し、ポータルセッションを作成できない場合は HTTP 500 を返します。それより前のバージョンでは、JSON ボディ { "status": 400, "body": "Missing customer_id in query parameters" } とともに HTTP 200 を返します。HTTP ステータスに依存するには、0.2.11 以降にアップグレードしてください。

Webhook Route Handler

webhook route handler は、コードを実行する前に各 request を検証します。
  • Method: POST requests のみサポートします。その他の methods は 405 を返します。
  • Signature Verification: raw request body と webhook-id、webhook-timestamp、webhook-signature headers を webhookKey で検証し、Standard Webhooks specification に従います。検証に失敗すると 401 を返します。
  • Payload Validation: payload を Zod で検証します。invalid payload の場合は 400 を返します。
  • Error Handling:
    • 401: Invalid signature
    • 400: Invalid payload
    • 500: 検証中の Internal error
  • Event Routing: すべての events に対して onPayload を呼び出し、その後 event type 用の handler を呼び出して 200 を返します。
adaptor は handlers で throw された errors を catch しません。errors は Nuxt に propagate され、request は失敗します。

サポートされる Webhook Event Handlers

各 handler は、その event type の検証済み payload を受け取ります。
各 event の意味については、Webhook Event Guide を参照してください。

LLM 用 Prompt

この prompt を AI coding assistant にコピーすると、project にモジュールを追加できます。agent に Dodo Payments の docs と skills も提供するには、Agent Plugin をインストールしてください。
最終更新日 2026年9月26日