Integrieren Sie Dodo Payments in Ihre PHP-Anwendungen mit einem modernen, PSR-4-konformen SDK
Das PHP SDK bietet eine robuste und flexible Möglichkeit, Dodo Payments in Ihre PHP-Anwendungen zu integrieren. Es wurde nach modernen PHP-Standards mit PSR-4-Autoloading entwickelt und bietet umfassende Testabdeckung sowie detaillierte Dokumentation.
Die Dodo Payments PHP API-Bibliothek befindet sich derzeit in Beta. Wir freuen uns darauf, dass Sie damit experimentieren! Bitte teilen Sie uns Vorschläge, Fehlerberichte oder Feature-Anfragen mit, indem Sie ein Problem melden.
Das SDK verwendet benannte Parameter, um optionale Argumente anzugeben. Sie können Wertobjekte mit dem statischen with Konstruktor initialisieren:
Kopieren
<?phpuse Dodopayments\Customers\AttachExistingCustomer;// Recommended: Use static 'with' constructor with named parameters$customer = AttachExistingCustomer::with(customerID: "customer_id");
Builder sind auch als alternatives Muster verfügbar:
Kopieren
<?phpuse Dodopayments\Customers\AttachExistingCustomer;// Alternative: Use builder pattern$customer = (new AttachExistingCustomer)->withCustomerID("customer_id");
Bestimmte Fehler werden standardmäßig 2 Mal automatisch mit einer kurzen exponentiellen Rückoff-Zeit wiederholt. Die folgenden Fehler lösen automatische Wiederholungen aus:
Verbindungsfehler (Netzwerkverbindungsprobleme)
408 Anfragezeitüberschreitung
409 Konflikt
429 Ratenlimit
500+ Interne Fehler
Zeitüberschreitungen
Konfigurieren Sie das Wiederholungsverhalten global oder pro Anfrage:
Kopieren
<?phpuse Dodopayments\Client;use Dodopayments\RequestOptions;// Configure default for all requests (disable retries)$client = new Client(maxRetries: 0);// Or, configure per-request$result = $client->checkoutSessions->create( productCart: [["productID" => "product_id", "quantity" => 1]], requestOptions: RequestOptions::with(maxRetries: 5),);
$page = $client->payments->list();var_dump($page);// Fetch items from the current pageforeach ($page->getItems() as $item) { var_dump($item->brand_id);}// Auto-paginate: fetch items from all pagesforeach ($page->pagingEachItem() as $item) { var_dump($item->brand_id);}
Wenn die Bibliothek keine Verbindung zur API herstellen kann oder einen Nicht-Erfolgsstatuscode (4xx oder 5xx) erhält, wird eine Unterklasse von APIException ausgelöst:
Kopieren
<?phpuse Dodopayments\Core\Exceptions\APIConnectionException;use Dodopayments\Core\Exceptions\RateLimitException;use Dodopayments\Core\Exceptions\APIStatusException;try { $checkoutSessionResponse = $client->checkoutSessions->create( productCart: [["productID" => "product_id", "quantity" => 1]] );} catch (APIConnectionException $e) { echo "The server could not be reached", PHP_EOL; var_dump($e->getPrevious());} catch (RateLimitException $_) { echo "A 429 status code was received; we should back off a bit.", PHP_EOL;} catch (APIStatusException $e) { echo "Another non-200-range status code was received", PHP_EOL; echo $e->getMessage();}