Use this file to discover all available pages before exploring further.
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 :
<?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 :
<?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 :
use Dodopayments\Customers\AttachExistingCustomer;use Dodopayments\Payments\BillingAddress;// Create a subscription$subscription = $client->subscriptions->create( billing: BillingAddress::with( country: 'US', city: 'San Francisco', state: 'CA', street: '1 Market St', zipcode: '94105', ), customer: AttachExistingCustomer::with(customerID: 'cus_123'), productID: 'pdt_456', quantity: 1,);// Charge an on-demand subscription// productPrice is in the lowest currency denomination (e.g., 2500 = $25.00 USD)$charge = $client->subscriptions->charge( $subscription->subscription_id, productPrice: 2500,);
billing nécessite au moins le code ISO country à deux lettres. Passez AttachExistingCustomer::with(customerID: '...') pour attacher un client existant, ou NewCustomer::with(email: '...', name: '...') pour en créer un. productPrice est dans la plus petite dénomination monétaire.
$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 peut pas se connecter à l’API ou reçoit un code d’état de non-succès (4xx ou 5xx), une sous-classe de APIException est lancée :
<?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();}
Toujours encapsuler les appels d’API dans des blocs try-catch pour gérer gracieusement les erreurs potentielles
et fournir un retour d’information significatif aux utilisateurs.