webrteu / stripe
Stripe checkout and webhook integration for Auditor
Requires
- php: ^8.2
- dompdf/dompdf: ^3.1
- filament/filament: ^3.3
- illuminate/support: ^10.0|^11.0|^12.0
- laravel/framework: ^12.0
- stripe/stripe-php: ^10.0|^11.0|^12.0|^13.0|^14.0|^15.0|^16.0|^17.0|^18.0|^19.0
- webrteu/invoicing: ^1.0
README
Acest pachet oferă integrarea cu Stripe pentru procesarea plăților și gestionarea webhook-urilor, fiind special configurat pentru aplicația Auditor. Pachetul gestionează automat evenimentele Stripe și se integrează cu modulul intern de facturare.
Cerințe
- PHP >= 8.2
- Laravel >= 12.0
- Pachetul
webrteu/invoicing(^1.0) instalat și configurat. - Modelele de bază din aplicația principală:
Order,AuditRequest,AuditLog.
Instalare
Poți instala pachetul folosind Composer:
composer require webrteu/stripe
(Notă: Dacă pachetul se instalează din stadiul de dezvoltare, poți folosi composer require webrteu/stripe:@dev)
Publicarea Configurării
Publică fișierul de configurare necesar pentru setările Stripe:
php artisan vendor:publish --tag=stripe-config
Acest lucru va genera un fișier config/stripe.php în cadrul aplicației principale.
Configurare
Adaugă următoarele variabile în fișierul tău .env:
STRIPE_KEY=pk_test_... STRIPE_SECRET=sk_test_... STRIPE_WEBHOOK_SECRET=whsec_...
Important: Asigură-te că ruta de webhook este exclusă din validarea CSRF. Modifică excepțiile în bootstrap/app.php (specific Laravel 11+) sau în Middleware-ul VerifyCsrfToken.php:
// Pentru Laravel 11+ (bootstrap/app.php): ->withMiddleware(function (Middleware $middleware) { $middleware->validateCsrfTokens(except: [ 'stripe/webhook', ]); })
// Pentru versiuni sub Laravel 11 (app/Http/Middleware/VerifyCsrfToken.php): protected $except = [ '/stripe/webhook', ];
Utilizare Webhook
Pachetul definește și exportă automat o rută /stripe/webhook, pe care Stripe o poate apela pentru a notifica sistemul în legătură cu statusul plăților.
Controller-ul central este WeBRTeu\Stripe\Http\Controllers\StripeWebhookController și procesează următoarele evenimente din Stripe:
checkout.session.completed: Verifică statusul plății, generează notificările de confirmare ale comenzii, creeazăAuditRequestși activează serviciul de facturare pentru finalizarea procesului.payment_intent.succeededpayment_intent.payment_failed
Extindere sau Modificare Webhook
Ruta implicită poartă numele de stripe.webhook. Dacă ai nevoie să modifici comportamentul implicit, poți extinde / suprascrie controller-ul din aplicația principală sau poți defini seturi complet noi de funcționalități respectând fluxul existent.
Testare Locală
În mediul de dezvoltare (APP_ENV=local), dacă valoarea din .env pentru webhook (STRIPE_WEBHOOK_SECRET) este lăsată temporar la valoarea whsec_your_webhook_secret_here, pachetul va renunța automat la verificarea semnăturii pentru a facilita testarea mai ușoară cu payload-uri dummy.
Autor
- Nume: WeBRTeu
- Website: https://webrteu.eu
- Email: pfa.razvan.bodnariu@gmail.com
Licență
Proiectul este distribuit sub licența MIT.