laravel maintained by vega-pay
Description
SDK Laravel officiel pour integrer Vega Pay cote serveur.
Author
Vega Pay
Last update
2026/06/15 16:29
(dev-main)
License
Downloads
0
Tags
vega-pay/laravel
SDK Laravel officiel pour integrer Vega Pay cote serveur.
Ce package utilise uniquement la cle privee vp_sk_test_... ou vp_sk_live_... pour creer et consulter des paiements. Il ne gere pas les reversements.
Installation
composer require vega-pay/laravel
Publier la configuration :
php artisan vendor:publish --tag=vega-pay-config
Variables .env :
VEGA_PAY_SECRET_KEY=vp_sk_test_...
VEGA_PAY_PUBLIC_KEY=vp_pk_test_...
VEGA_PAY_WEBHOOK_SECRET=whsec_...
VEGA_PAY_BASE_URL=https://api.vegapay.ci
VEGA_PAY_TIMEOUT=10
Creer un paiement
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use VegaPay\Laravel\Facades\VegaPay;
Route::post('/checkout', function (Request $request) {
$payment = VegaPay::createPayment([
'amount' => $request->integer('amount'),
'currency' => 'XOF',
'orderId' => $request->string('order_id')->toString(),
'customerPhone' => $request->string('phone')->toString(),
'successUrl' => route('payment.success'),
'errorUrl' => route('payment.error'),
'metadata' => [
'source' => 'laravel',
],
], idempotencyKey: $request->string('order_id')->toString());
return redirect()->away($payment['checkoutUrl']);
});
Avec une cle marchande Vega Pay, le paiement est automatiquement rattache au compte marchand. Il n'est pas necessaire d'envoyer un sellerId.
Recuperer un paiement
$payment = VegaPay::retrievePayment('pay_...');
if ($payment['status'] === 'succeeded') {
// Livrer la commande.
}
Verifier un webhook
Ajoute une route qui conserve le body brut.
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use VegaPay\Laravel\Facades\VegaPay;
use VegaPay\Laravel\Exceptions\VegaPaySignatureVerificationException;
Route::post('/webhooks/vega-pay', function (Request $request) {
try {
$event = VegaPay::constructWebhookEvent(
$request->getContent(),
$request->header('X-Pay-Signature', '')
);
} catch (VegaPaySignatureVerificationException) {
abort(400);
}
if ($event['type'] === 'payment.succeeded') {
$payment = $event['data']['payment'];
// Marquer la commande comme payee.
}
return response()->json(['received' => true]);
});
Gestion des erreurs
use VegaPay\Laravel\Exceptions\VegaPayException;
try {
$payment = VegaPay::createPayment([
'amount' => 10000,
'currency' => 'XOF',
'orderId' => 'CMD-10001',
], idempotencyKey: 'CMD-10001');
} catch (VegaPayException $exception) {
report($exception);
return back()->withErrors([
'payment' => $exception->getMessage(),
]);
}
Sandbox et live
Le mode depend de la cle utilisee :
vp_sk_test_...cree des paiements sandbox.vp_sk_live_...cree des paiements reels apres verification du compte.
La cle privee doit rester cote serveur. La cle publique vp_pk_* peut etre exposee dans une integration frontend future, mais elle ne sert pas a creer un paiement serveur.