Skip to main content
Java SDKを使用すると、JavaアプリケーションからDodo Payments REST APIに型付きでアクセスできます。全体を通してJavaの型を使用しており、欠落する可能性のあるフィールドにはOptional、結果の反復処理にはStream、非同期呼び出しにはCompletableFutureを使用します。

インストール

Maven

依存関係をあなたのpom.xmlに追加します:
pom.xml

Gradle

依存関係をbuild.gradle.ktsに追加します。
build.gradle.kts
SDKのリリースでは、APIの変更への対応が追加されます。最新バージョンを確認するには、Maven Centralを参照してください。
SDKにはJava 8以降が必要です。そのため、Java 11、17、21でも実行できます。

クイックスタート

clientを作成してから、checkout sessionを作成します。
fromEnv()は、DODO_PAYMENTS_BASE_URLまたはdodopayments.baseUrlで別途指定されていない限り、live modeに接続します。test modeを使用するには、Test Modeを参照してください。test modeのAPI keyはtest modeでのみ使用できます。
API keyは環境変数、system property、またはsecrets managerに保存してください。ソースコードに直接記述しないでください。

Core Features

Type Safety

コンパイル時のチェックに対応した、型付きのrequest classとresponse class。

Shared Client

1つのclientを作成し、複数のrequestで再利用できます。clientはconnection poolとthread poolを保持します。request objectとresponse objectはimmutableです。

Builder Pattern

すべてのrequest classにはbuilderがあり、toBuilder()で変更したcopyを作成できます。

Async Support

client.async()は、各methodがCompletableFutureを返すclientを返します。

Configuration

Environment Variables

fromEnv()は、以下の環境変数、または対応するsystem propertyを読み取ります。system propertyが優先されます。
.env
API keyはDODO_PAYMENTS_API_KEYまたはdodopayments.apiKeyから取得されます。webhook signing secretはDODO_PAYMENTS_WEBHOOK_KEYまたはdodopayments.webhookKeyから、base URLはDODO_PAYMENTS_BASE_URLまたはdodopayments.baseUrlから取得されます。1つのclientを作成して再利用してください。各clientは独自のconnection poolとthread poolを持つためです。 webhookを検証するには、raw request bodyとheadersをclient.webhooks().unwrap(UnwrapWebhookParams.builder().body(rawBody).headers(headers).build())に渡します。ここでheadersはcom.dodopayments.api.core.http.Headersです。webhook keyでsignatureを検証し、解析済みのeventを返します。検証に失敗した場合はDodoPaymentsWebhookExceptionをthrowします。headersを指定しない場合、unwrapはsignatureを検証しません。client.webhooks().unsafeUnwrap(rawBody)は検証せずにbodyを解析するため、テスト目的でのみ使用してください。Webhooksを参照してください。

Manual Configuration

builderで各optionを設定します。
デフォルトでは、clientは2回retryし、1分後にtimeoutします。connection errorと、status 408、409、429、または500以上のresponseをretryします。1回のcallでtimeoutを上書きするには、RequestOptions.builder().timeout(Duration.ofSeconds(30)).build()をmethodの2番目の引数として渡します。responseValidation(true)を使用すると、response全体が期待される型と一致するかを事前にチェックします。これを使用しない場合、SDKは想定外の型のpropertyを読み取ったときにのみDodoPaymentsInvalidDataExceptionをthrowします。

Test Mode

test mode(https://test.dodopayments.com)を使用するには、builderでtestMode()を呼び出します。

Common Operations

このセクションの例では、Quick Startで作成したclientを使用します。

Create a Checkout Session

checkout sessionを作成し、返されたcheckout URLにcustomerをredirectします。
checkoutUrl()はOptional<String>を返します。各checkout URLは1回のみ使用でき、24時間後に期限切れになります。すべてのsession optionについては、Checkout Sessionsを参照してください。

Manage Customers

email address、name、metadataを指定してcustomerを作成し、IDで取得します。

Handle Subscriptions

payment linkを指定してsubscriptionを作成し、on-demand subscriptionの場合はchargeします。
POST /subscriptions(SDKのsubscriptions().create() method)はdeprecatedです。既存のintegrationでは引き続き動作しますが、新しいintegrationではCheckout Sessionを通じてsubscriptionを作成してください。
productPriceは最小通貨単位で指定します。たとえばUSDではcent、INRではpaiseです。$25.00をchargeするには、2500を渡します。
subscriptions().charge(...)はon-demand subscriptions向けです。Dodo Paymentsは、その他のsubscriptionをproductのbilling scheduleに従って自動的に請求します。

Usage-Based Billing

Configure Meters

eventをカウントするmeterを作成し、meterを一覧表示します。autoPager()はすべてのmeterを反復処理し、必要に応じて追加のpageを取得します。

Ingest Usage Events

customerのusage eventを送信します。event metadataの値はJsonValue objectです。
eventIdはidempotency keyです。そのため、各eventには一意の値を指定してください。1時間を超えて過去の、または5分を超えて未来のtimestampは拒否されます。

Batch Ingest Events

1回のrequestで最大1,000件のeventを送信できます。この例では、前の例のimportを使用します。

Error Handling

SDKはunchecked exceptionをthrowします。error statusの場合、DodoPaymentsServiceExceptionのsubclassをthrowします。このclassにはstatusCode()、headers()、body()があります。base classより前に、処理したいspecific classをcatchしてください。
409など、独自のclassを持たないstatusではUnexpectedStatusCodeExceptionをthrowします。network failureではDodoPaymentsIoExceptionを、SDKが解釈できないresponseではDodoPaymentsInvalidDataExceptionをthrowします。これらはすべてDodoPaymentsExceptionをextendしています。
SDKは、connection errorとstatus 408、409、429、または500以上のresponseを、デフォルトでは指数バックオフを使用して2回retryします。

Async Operations

clientでasync()を呼び出すと、非同期clientを取得できます。そのmethodはCompletableFutureを返します。
最初から非同期clientを作成するには、DodoPaymentsOkHttpClientAsync.fromEnv()を使用します。

Spring Boot Integration

Configuration Class

1つのclientをbeanとして登録し、propertyからenvironmentを選択します。

Service Layer

clientをserviceにinjectします。

Resources

GitHub Repository

source code、release、methodの完全な一覧。

API Reference

すべてのendpoint、parameter、response。

Discord Community

質問したり、他のdeveloperと交流したりできます。

Report Issues

bugを報告したり、featureをリクエストしたりできます。

Support

Java SDKに関するサポート:

Contributing

contributeするには、contributing guidelinesをお読みください。
最終更新日 2026年9月26日