Official PHP SDK for the CaurisFlux API — Mobile Money & Card payments in Francophone Africa.
# CaurisFlux PHP SDK
SDK PHP officiel pour l'API CaurisFlux — agrégateur de paiement panafricain : Mobile Money (Wave, Orange Money, MTN, Free Money, Moov…) et Carte Bancaire en zones UEMOA, CEMAC, Ghana, Nigeria.
- PHP 8.2+ (readonly properties, enums, match, nullsafe, named args)
- Zéro dépendance lourde — `psr/log` uniquement, transport `curl` natif
- Stripe-like façade : `$cf->payments->create([...])`
- Retry exponentiel avec jitter sur 5xx / 429 / erreur réseau
- Idempotency-Key automatique sur les écritures
- Vérification de signature des webhooks (HMAC SHA256, anti-replay)
## Installation
```bash
composer require caurisflux/caurisflux-php
```
## Démarrage rapide
```php
use CaurisFlux\CaurisFlux;
use CaurisFlux\Enum\Environment;
$cf = new CaurisFlux('pk_test_xxx:sk_test_xxx', Environment::SANDBOX);
$payment = $cf->payments->create([
'amount' => 1000,
'currency' => 'XOF',
'provider' => 'wave_sn',
'customerPhone' => '+221770000000',
'returnUrl' => '
merchant.example',
'cancelUrl' => '
merchant.example',
]);
header('Location: ' . $payment->checkoutUrl);
```
## Configuration
```php
use CaurisFlux\Configuration;
use CaurisFlux\CaurisFlux;
use CaurisFlux\Enum\Environment;
$config = new Configuration(
apiKey: 'pk_live_xxx:sk_live_xxx',
environment: Environment::LIVE,
timeoutSeconds: 30,
maxRetries: 3,
backoffBaseMs: 500,
logger: $psrLogger, // optionnel — accepte n'importe quel PSR-3
);
$cf = new CaurisFlux($config);
```
Le format de la clé API est `pk_xxx:sk_xxx`. Les préfixes `pk_test_` / `sk_test_` sont attendus en sandbox, `pk_live_` / `sk_live_` en production. Un mismatch déclenche un avertissement non bloquant via `$config->envMismatchWarning()`.
## Resources
### Payments
```php
// Créer un paiement (checkout hébergé par défaut)
$payment = $cf->payments->create([
'amount' => 5000,
'currency' => 'XAF',
'provider' => 'orange_cm',
'customerPhone' => '+237699000000', …