Passer au contenu principal
Le client expose un service par groupe de ressources. Chaque appel renvoie une ressource typée avec autocomplétion IDE ; les champs inconnus renvoyés par l’API sont préservés.

Services

$orqex->paymentIntents();   // create, all, retrieve, attempt, confirm, capture
$orqex->checkouts();        // create, retrieve, expire
$orqex->attempts();         // all, retrieve
$orqex->refunds();          // create, all, retrieve
$orqex->reconciliations();  // reconcile
$orqex->exchangeRates();    // latest, supportedCurrencies

Ressources typées

$intent = $orqex->paymentIntents()->retrieve('TRX123');

$intent->id;                 // "TRX123"
$intent->status;             // "completed"
$intent->amount->value;      // 5000 (unités mineures)
$intent->amount->currency;   // "XOF"
$intent->customer->email;    // "[email protected]"
$intent->toArray();          // tableau brut, aussi sérialisable en JSON

Pagination

foreach ($orqex->paymentIntents()->all()->autoPagingIterator() as $intent) {
    // chaque intention sur toutes les pages
}

Idempotence & options par requête

$orqex->paymentIntents()->create($params, [
    'idempotency_key' => 'commande-1024',
    'timeout'         => 15.0,
    'headers'         => ['X-Trace' => 'abc'],
]);

Gestion des erreurs

Toutes les erreurs implémentent Orqex\Orchestrate\Exception\OrchestrateException.
use Orqex\Orchestrate\Exception\InvalidRequestException;
use Orqex\Orchestrate\Exception\AuthenticationException;
use Orqex\Orchestrate\Exception\RateLimitException;
use Orqex\Orchestrate\Exception\ApiException;

try {
    $orqex->paymentIntents()->create($params);
} catch (InvalidRequestException $e) {
    $e->errors;       // ['amount' => ['The amount must be at least 1.']]
    $e->firstError(); // "The amount must be at least 1."
} catch (AuthenticationException $e) {
    // 401
} catch (RateLimitException $e) {
    // 429 — le SDK a déjà réessayé ; temporisez davantage si besoin
} catch (ApiException $e) {
    $e->httpStatus;   // int
    $e->requestId;    // string|null
}
ExceptionStatut
AuthenticationException401
PermissionException403
NotFoundException404
InvalidRequestException400 / 422
IdempotencyException409 / 428
RateLimitException429
NotImplementedException501
ServerException5xx
ApiConnectionExceptionéchec réseau