wpay-bj/php-sdk

WPay PHP SDK —Vérification de transactions WebcoomPay

Maintainers

Package info

gitlab.com/hkraservices/webcoompay-sdk

Homepage

Issues

pkg:composer/wpay-bj/php-sdk

Transparency log

Statistics

Installs: 8

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.1 2026-07-15 10:40 UTC

This package is auto-updated.

Last update: 2026-07-15 09:40:31 UTC


README

Latest Version PHP Version License

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 key dans 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 :

FormatHeaderAnti-replay
Horodaté (recommandé)t=1715610000,v1=<hex_hmac>✅ rejette les requêtes > 5 min
Legacy<hex_hmac>

Exceptions

ExceptionCodeCause
AuthenticationException401/403Secret key invalide ou révoquée
NotFoundException404Ressource introuvable
WebhookSignatureException400Signature HMAC invalide, manquante ou expirée
WPayvariableAutre 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.

Versionnage & mises à jour

Ce SDK suit le Semantic Versioning (MAJOR.MINOR.PATCH) :

  • MAJOR — changement non rétrocompatible (signature modifiée, comportement changé)
  • MINOR — nouvelle fonctionnalité, rétrocompatible
  • PATCH — correction de bug, aucun changement d'API

Mettre à jour le SDK dans votre projet

# Récupère la dernière version compatible avec votre contrainte actuelle
composer update webcoompay-bj/php-sdk

# Passer à une nouvelle version majeure (changement volontaire)
composer require webcoompay-bj/php-sdk:^2.0

Nous recommandons de fixer votre contrainte sur le MAJOR uniquement (^1.0) dans votre composer.json, pour recevoir automatiquement les correctifs et nouvelles fonctionnalités sans risque de casse :

"require": {
    "webcoompay-bj/php-sdk": "^1.0"
}

Voir les changements

Consultez CHANGELOG.md avant toute mise à jour majeure — les changements non rétrocompatibles y sont documentés avec un guide de migration.