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 Ihre Vorschläge, Fehlerberichte oder
Funktionsanfragen 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();}