PHP SDK for integrating Pawapay Mobile Money payments (pay-ins, pay-outs, and webhooks) across African markets
# PHP Pawapay SDK
**SDK PHP pour l'intégration des paiements Mobile Money Pawapay à travers les marchés africains.**
---
## 📖 Introduction
### Qu'est-ce que Pawapay ?
Pawapay est une plateforme de paiement qui permet d'accepter des paiements via Mobile Money (M-Pesa, MTN MoMo, Orange Money, etc.) dans plus de 15 pays africains.
### Ce que fait ce SDK
Ce SDK transforme les appels HTTP bruts vers l'API Pawapay en **objets PHP typés, validés et documentés**.
### Pourquoi l'utiliser ?
| Sans SDK | Avec SDK |
|----------|----------|
| `json_decode()` manuel | Objets PHP typés (`DepositDataStruct`) |
| Validation manuelle | Value Objects (`PhoneNumberVO`, `UuidVO`) |
| String magiques | Enums (`Provider::MTN_MOMO_ZMB`) |
| Code répétitif | Builders fluides |
---
## 🚀 Installation
```bash
composer require andydefer/php-pawapay
```
---
## ⚙️ Configuration
### Créer le client
```php
initiateDeposit($deposit);
```
### Étape 3 : Traiter la réponse
```php
if ($response->isSuccess()) {
// Succès (status 200)
if ($response->isAccepted()) {
echo "✅ Dépôt accepté !\n";
echo "ID: " . $response->getDepositId() . "\n"; // f4401bd2-1568-...
echo "Statut: " . $response->getStatus()->value; // ACCEPTED
echo "Créé: " . $response->getCreated(); // 2020-10-19T11:17:01Z
} elseif ($response->isDuplicateIgnored()) {
echo "⚠️ Dépôt dupliqué ignoré\n";
}
} else {
// Échec
echo "❌ Échec du dépôt\n";
echo "Statut: " . $response->getStatus()->value; // REJECTED
if ($response->hasFailureReason()) {
$failure = $response->getFailureReason();
echo "Code: " . $failure->failureCode; // INVALID_PHONE_NUMBER
echo "Message: " . $failure->failureMessage; // The phone number '2607634'...
}
}
```
### Avec le Builder (recommandé)
Le builder rend le code plus lisible et réduit les erreurs :
```php
$deposit = InitiateDepositBuilder::create()
->withAutoGeneratedDepositId() // UUID automatique
->withPhoneNumber('260763456789')
->withProvider(Provi …