SDK PHP
composer require mypaie/sdk
Installation
composer require mypaie/sdk
Initialisation
<?php
require 'vendor/autoload.php';
use MyPaie\MyPaie;
$mypaie = new MyPaie('pk_test_votre_cle');
Checkout hébergé
// Créer une session de checkout
$session = $mypaie->checkout->create([
'amount' => 5000,
'currency' => 'XOF',
'description' => 'Commande #123',
'success_url' => 'https://votresite.com/success',
'cancel_url' => 'https://votresite.com/cancel',
'customer_email' => 'client@email.com',
'metadata' => ['order_id' => '123']
]);
// Rediriger le client
header('Location: ' . $session['checkout_url']);
exit;
Orange Money
$payment = $mypaie->payments->orangeMoney([
'amount' => 5000,
'currency' => 'XOF',
'phone' => '+22370123456',
'description' => 'Achat produit'
]);
// Rediriger vers Orange Money
header('Location: ' . $payment['payment_url']);
Carte bancaire
$payment = $mypaie->payments->card([
'amount' => 10000,
'currency' => 'XOF',
'customer_email' => 'client@email.com',
'customer_name' => 'Amadou Diallo',
'description' => 'Abonnement Premium'
]);
header('Location: ' . $payment['payment_url']);
Vérifier le statut
$status = $mypaie->payments->retrieve('PAY_20260110_ABC123');
echo $status['status']; // completed, pending, failed...
echo $status['amount'];
echo $status['payment_method'];
Webhooks
use MyPaie\Webhook;
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_MYPAIE_SIGNATURE'];
$secret = 'votre_webhook_secret';
try {
$event = Webhook::constructEvent($payload, $signature, $secret);
switch ($event['event']) {
case 'payment.success':
$reference = $event['data']['reference'];
// Marquer la commande comme payée
break;
case 'payment.failed':
// Gérer l'échec
break;
}
http_response_code(200);
echo 'OK';
} catch (\MyPaie\MyPaieException $e) {
http_response_code(401);
echo 'Signature invalide';
}
Gestion des erreurs
try {
$payment = $mypaie->payments->orangeMoney([...]);
} catch (\MyPaie\MyPaieException $e) {
echo $e->getMessage(); // Message d'erreur
echo $e->getErrorCode(); // VALIDATION_ERROR, etc.
echo $e->getHttpCode(); // 400, 401, etc.
}