Skip to main content
PHP SDKを使用すると、PHP 8.1以降のアプリケーションからDodo Payments REST APIにアクセスできます。メソッドは名前付きパラメータを受け取り、レスポンスは型付きオブジェクトとして返されます。また、ComposerがPSR-4 autoloadingを使用してSDKを読み込みます。

インストール

ComposerでSDKをインストールします。
SDKにはPHP 8.1.0以降とComposerが必要です。リクエストは、Guzzleなど、プロジェクト内のPSR-18 HTTP clientを介して送信されます。SDKはphp-http/discoveryを使用してこれを検出します。

クイックスタート

クライアントを作成してから、チェックアウトセッションを作成します。
bearerTokenを省略すると、クライアントはDODO_PAYMENTS_API_KEY環境変数を読み取ります。baseUrlを省略すると、クライアントはDODO_PAYMENTS_BASE_URLを読み取ります。これも設定されていない場合は、live mode(https://live.dodopayments.com)に接続します。test modeのAPI keyは、test modeのURLであるhttps://test.dodopayments.comでのみ機能します。
API keyは環境変数またはsecrets managerに保存してください。コードベースに公開したり、 version controlにコミットしたりしないでください。

主な機能

PSR-4 Compliant

ComposerはPSR-4 autoloadingを使用してDodopayments namespaceを読み込みます。

Modern PHP

PHP 8.1以降向けに構築されており、型付きパラメータとstrict typesに対応しています。

Extensive Testing

SDK repositoryには、API servicesのtest suiteが含まれています。

Exception Handling

各HTTP error statusに対応するexception classに加えて、timeoutおよびconnection exceptionがあります。

Value Objects

メソッドは名前付きパラメータを受け取ります。デフォルト値を持つパラメータは、名前を指定して渡す必要があります。value objectを作成するには、名前付きパラメータを指定してstatic with constructorを使用します。
各value objectにはbuilderもあります。
メソッドは、["productID" => "pdt_123", "quantity" => 1]のように、同じcamelCase keyを持つ通常の配列も受け付けます。レスポンスプロパティもcamelCase nameを使用します。たとえば$session->checkoutURLです。

Configuration

Client constructorは、bearerToken、webhookKey、baseUrl、requestOptionsを受け取ります。これらを省略すると、環境変数からDODO_PAYMENTS_API_KEY、DODO_PAYMENTS_WEBHOOK_KEY(webhook signing secret)、DODO_PAYMENTS_BASE_URLを読み取ります。 webhookを検証するには、raw request bodyとheadersを$client->webhooks->unwrap($body, headers: $headers)に渡します。これはwebhook keyでsignatureを確認し、解析済みのeventを返します。確認に失敗するとWebhookExceptionをthrowします。headersを省略すると、unwrapはsignatureを検証しません。$client->webhooks->unsafeUnwrap($body)は検証せずにbodyを解析するため、testingでのみ使用してください。Webhooksを参照してください。

Retry Configuration

SDKはデフォルトで、一部のエラーを短い指数バックオフを使用して2回retryします。次のエラーがretryの対象になります。
  • Connection errors(network connectivity problems)
  • 408 Request Timeout
  • 409 Conflict
  • 429 Rate Limit
  • 500+ Internal errors
  • Timeouts
クライアントまたは単一のrequestで、requestOptionsにmaxRetriesを設定します。
Requestsはデフォルトで60秒後にtimeoutします。制限を変更するには、同じrequestOptions arrayに、秒単位でtimeoutを設定します。

一般的な操作

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

Checkout Sessionの作成

checkout sessionを作成し、返されたcheckoutURLにcustomerをredirectします。
各checkout URLは1回だけ使用でき、24時間後にexpireします。すべてのsession optionについては、Checkout Sessionsを参照してください。

Customerの管理

email addressとnameを指定してcustomerを作成し、その後IDで取得します。

Subscriptionの処理

subscriptionを作成し、on-demand subscriptionの場合はそのsubscriptionにchargeします。
POST /subscriptions(SDKのsubscriptions->create method)はdeprecatedです。既存のintegrationでは引き続き動作しますが、新しいintegrationではCheckout Sessionを介してsubscriptionを作成してください。
billingには、2文字のISO country codeであるcountryだけが必要です。既存のcustomerを関連付けるにはAttachExistingCustomer::with(customerID: '...')を渡し、新しいcustomerを作成するにはNewCustomer::with(email: '...', name: '...')を渡します。両方のclassはDodopayments\Payments namespaceにあります。chargeはon-demand subscriptions用で、productPriceは通貨の最小単位で指定します。

Pagination

List methodはpage objectを返します。getItems()は現在のpageのitemsを返し、pagingEachItem()は必要に応じて追加のpageをrequestしながら、現在のpage以降のすべてのitemを返します。
一度に1 pageずつ移動するには、hasNextPage()とgetNextPage()を呼び出します。

Error Handling

SDKがAPIに接続できない場合、またはAPIが4xxもしくは5xx statusを返した場合、SDKはDodopayments\Core\Exceptions\APIExceptionのsubclassをthrowします。

Error Types

exception classは原因によって異なります。すべてのclassはDodopayments\Core\Exceptions namespaceにあります。
API callの周囲でこれらのexceptionをcatchし、アプリケーションが明確な messageを表示するか、後で再試行できるようにしてください。retry可能なerrorの場合、SDKは automatic retryがすべて失敗した後にのみthrowします。

Advanced Usage

Undocumented Endpoints

SDK methodが存在しないendpointを呼び出すには、$client->requestを使用します。SDK methodと同じauthenticationおよびretryが適用されます。

Undocumented Parameters

SDKで定義されていないparametersを送信するには、requestOptionsに渡します。
documented parameterと同じ名前を持つextra* parameterは、その値を上書きします。

Framework Integration

Laravel

clientをservice classでラップします。この例では、configured environmentからAPI URLを設定します。
設定をconfig/services.phpに追加します。

Symfony

constructorを介してAPI keyを受け取るserviceを作成します。
config/services.yamlにserviceを登録します。

Resources

GitHub Repository

Source code、releases、完全なmethod listです。

API Reference

すべてのendpoint、parameter、responseです。

Discord Community

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

Report Issues

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

Support

PHP SDKに関するサポート:

Contributing

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