Intégrez Dodo Payments dans vos applications PHP avec un SDK moderne conforme à PSR-4
Le SDK PHP offre un moyen robuste et flexible d’intégrer Dodo Payments dans vos applications PHP. Construit selon les normes PHP modernes avec autoloading PSR-4, il offre une couverture de test étendue et une documentation détaillée.
Stockez vos clés API de manière sécurisée en utilisant des variables d’environnement. Ne les exposez jamais dans votre base de code ni ne les validez dans le contrôle de version.
Le SDK utilise des paramètres nommés pour spécifier les arguments optionnels. Vous pouvez initialiser les objets valeur en utilisant le constructeur statique with :
Copier
<?phpuse Dodopayments\Customers\AttachExistingCustomer;// Recommended: Use static 'with' constructor with named parameters$customer = AttachExistingCustomer::with(customerID: "customer_id");
Des builders sont également disponibles comme motif alternatif :
Copier
<?phpuse Dodopayments\Customers\AttachExistingCustomer;// Alternative: Use builder pattern$customer = (new AttachExistingCustomer)->withCustomerID("customer_id");
Certaines erreurs sont automatiquement relancées 2 fois par défaut avec un court délai exponentiel. Les erreurs suivantes déclenchent des relances automatiques :
Erreurs de connexion (problèmes de connectivité réseau)
408 Request Timeout
409 Conflict
429 Rate Limit
Erreurs internes 500+
Délais d’attente dépassés
Configurez le comportement de relance globalement ou par requête :
$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);}
Lorsque la bibliothèque ne parvient pas à se connecter à l’API ou reçoit un code d’état non satisfaisant (4xx ou 5xx), une sous-classe de APIException est levée :
Copier
<?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();}
Enveloppez toujours les appels API dans des blocs try-catch pour gérer les erreurs potentielles
avec grâce et fournir un retour pertinent aux utilisateurs.