wpay-bj / php-sdk
WPay PHP SDK —Vérification de transactions WebcoomPay
v1.0.0
2026-05-19 15:54 UTC
Requires
- php: ^8.1
- ext-hash: *
- ext-json: *
- guzzlehttp/guzzle: ^7.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.50
- phpunit/phpunit: ^10.5
README
SDK PHP officiel pour l'API WPay — vérification de transactions, orders et webhooks.
Installation
composer require webcoompay-bj/php-sdk
Prérequis : PHP 8.1+ avec les extensions json et hash.
Configuration
Tout ce dont vous avez besoin pour démarrer :
use WPay\WPay;
WPay::setSecretKey($_ENV['WPay_SECRET_KEY']);
C'est tout. Le SDK cible la production par défaut.
Variables d'environnement recommandées
# Obligatoires
WPay_SECRET_KEY=sk_live_xxxxxxxxxxxx
🔒 Stockez toujours la
secret keydans un.env(jamais en dur dans le code, jamais dans git).
Transactions
// Récupérer une transaction
$tx = WPay::transaction()->retrieve('01kmryyv98aw0mja47zp6h55tk');
// ✅ Vérification complète d'un paiement (statut + montant)
$valid = WPay::transaction()->verifyPayment($txId, expectedAmount: 5000);
// Vérifications séparées
$ok = WPay::transaction()->isSuccessful($txId);
$amountOk = WPay::transaction()->verifyAmount($txId, 5000.00);
// Liste paginée
$list = WPay::transaction()->list([
'status' => 'success',
'from' => '2026-01-01',
'per_page' => 20,
]);
Webhooks — vérification de signature
Le SDK supporte deux formats de signature dans l'en-tête X-WPay-Signature :
| Format | Header | Anti-replay |
|---|---|---|
| Horodaté (recommandé) | t=1715610000,v1=<hex_hmac> | ✅ rejette les requêtes > 5 min |
| Legacy | <hex_hmac> | ❌ |
Exceptions
| Exception | Code | Cause |
|---|---|---|
AuthenticationException | 401/403 | Secret key invalide ou révoquée |
NotFoundException | 404 | Ressource introuvable |
WebhookSignatureException | 400 | Signature HMAC invalide, manquante ou expirée |
WPay | variable | Autre erreur (5xx, réseau, etc.) |
Toutes héritent de WPay qui hérite elle-même de RuntimeException — un seul catch (WPay $e) capture tout.
Sécurité
- ✅ HMAC SHA-256 avec
hash_equals(timing-safe) - ✅ Anti-replay via timestamp signé (tolérance 5 min)
- ✅ Vérification SSL forcée
- ✅ Retry exponentiel sur erreurs réseau transitoires
Pour signaler une vulnérabilité : security@webcoompay.com
Licence
MIT — voir LICENSE.