@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
.env file に設定できます。ビルド済みの Nuxt server は
.env file を読み取りません。runtime では、Nuxt は path に対応する variable のみから runtimeConfig value を上書きします。たとえば private.returnUrl に対しては NUXT_PRIVATE_RETURN_URL が使用されます。そのため、これらの variables は hosting environment にも設定してください。API Route Handler の例
この examples では、
server/routes/api/ directory に server routes を作成します。Nuxt は各 file をその name と method suffix に基づいて routes として扱うため、checkout.get.ts は GET /api/checkout を処理します。- Checkout API Route
- Customer Portal API Route
- Webhook API Route
この handler を使用して、Dodo Payments checkout を Nuxt app に追加します。GET route は static checkout を提供します。POST route は checkout sessions、または
type: "dynamic" を設定した場合は dynamic checkout を提供します。checkout.post.ts は 1 つの POST flow を提供します。dynamic checkout example または checkout session example のいずれかを使用します。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 を受け取ります。
Static Checkout (GET)
Static Checkout (GET)
サポートされる 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 として渡されます。returnUrl を redirect_url として link に追加します。Response Format
Static checkout は checkout URL を含む JSON response を返します。test mode では URL にtest.checkout.dodopayments.com を使用します。Dynamic Checkout (POST)
Dynamic Checkout (POST)
- POST request の JSON body として parameters を送信します。
- one-time payments と recurring payments の両方をサポートします。
billingとcustomerは required です。- サポートされるすべての body fields については、次を参照してください。
Response Format
Dynamic checkout は checkout URL を含む JSON response を返します。Checkout Sessions (POST)
Checkout Sessions (POST)
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 します。Query Parameters
string
必須
portal session の customer ID。たとえば
?customer_id=cus_123。boolean
true に設定すると、Dodo Payments は portal link を customer にも email で送信します。Webhook Route Handler
webhook route handler は、コードを実行する前に各 request を検証します。- Method: POST requests のみサポートします。その他の methods は 405 を返します。
- Signature Verification: raw request body と
webhook-id、webhook-timestamp、webhook-signatureheaders を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 を返します。