romix/stripe-gateway
Laravel Stripe Checkout gateway with dev/prod API key switching (commercial license)
Típus: library · Hozzáférés: Védett · Honlap
Telepítés
Előbb állítsd be a hitelesítést (felhasználónév: romixweb):
composer config http-basic.composer.onlinego.hu romixweb a-jelszo composer require romix/stripe-gateway
Verziók és függőségek
A Composer a require mező alapján automatikusan telepíti a szükséges csomagokat.
| Verzió | Licenc | require | require-dev |
|---|---|---|---|
1.0.0 |
proprietary |
php: ^8.3illuminate/contracts: ^12.0|^13.0illuminate/database: ^12.0|^13.0illuminate/http: ^12.0|^13.0illuminate/routing: ^12.0|^13.0illuminate/support: ^12.0|^13.0stripe/stripe-php: ^17.0 |
— |
Telepítési dokumentáció
1. Repository hozzáadása
A célprojekt gyökerében a composer.json fájlba:
{
"repositories": [
{
"type": "composer",
"url": "https://composer.onlinego.hu"
}
]
}
2. Csomag telepítése
A Composer automatikusan feloldja és telepíti a csomag require mezőjében megadott függőségeket is (pl. Laravel, Filament):
composer require romix/stripe-gateway
3. Védett csomag – hitelesítés
Ez a csomag védett. A felhasználónév: romixweb
composer config http-basic.composer.onlinego.hu romixweb a-jelszo composer require romix/stripe-gateway
4. Globális repository beállítás (opcionális)
composer config --global repositories.onlinego composer https://composer.onlinego.hu
5. Ellenőrzés
- Nyisd meg:
https://composer.onlinego.hu/packages.json - Futtasd:
composer clear-cache - Telepítés részletes naplóval:
composer require romix/stripe-gateway -vvv
6. Függőségek működése
A composer require parancs a csomag require mezőjében szereplő függőségeket is telepíti, ha még nincsenek a projektben.
Licenc
| Verzió | Licenc(ek) |
|---|---|
1.0.0 |
proprietary |
Összesített licenc: proprietary
Használati útmutató
Funkciók
Stripe Checkout Session létrehozása egyedi tételsorokkal
Dev / prod környezetváltás (
STRIPE_MODE) külön publishable, secret és webhook kulcsokkalFüggő fizetések tárolása (
stripe_pending_checkoutstábla)Webhook:
checkout.session.completed→CheckoutPaideseménySikeres / megszakított fizetés visszatérési URL-ek
CSRF mentes webhook endpoint aláírással ellenőrizve
Követelmények
PHP ^8.3
Laravel ^12.0 vagy ^13.0
Stripe fiók (teszt és/vagy éles API kulcsokkal)
Publikusan elérhető HTTPS URL a webhookhoz (éles környezetben)
Telepítés
A csomag a Romix privát Composer tárolóból érhető el. A licenc megvásárlása után kapott telepítési URL-t és verziót használd.
1. Composer repository hozzáadása
Add hozzá a projekt composer.json fájljához a licenchez kapott repository beállítást:
{
"repositories": [
{
"type": "artifact",
"url": "https://packages.romix.hu/composer/"
}
]
}Ha más típusú privát tárolót kaptál (pl. Satis, Private Packagist), a Romix által megadott
repositoriesblokkot használd — a fenti URL csak példa.
2. Csomag telepítése
composer require romix/stripe-gateway:^1.0
php artisan migrateA csomag automatikusan regisztrálja a StripeGatewayServiceProvider-t a Laravel package discovery segítségével.
3. Konfiguráció publikálása (opcionális)
Ha felül szeretnéd bírálni az alapértelmezett beállításokat:
php artisan vendor:publish --tag=stripe-gateway-configA publikált fájl: config/stripe-gateway.php.
4. Eseménykezelő regisztrálása
A sikeres fizetés után a csomag CheckoutPaid eseményt küld. Regisztrálj listenert az alkalmazásban:
// app/Providers/AppServiceProvider.php
use Illuminate\Support\Facades\Event;
use Romix\StripeGateway\Events\CheckoutPaid;
public function boot(): void
{
Event::listen(CheckoutPaid::class, YourCheckoutPaidListener::class);
}A listenerben dolgozd fel a $event->pendingCheckout rekordot (pl. regisztráció befejezése, rendelés státusz frissítése).
Környezeti változók
Add hozzá a Laravel projekt .env fájljához:
STRIPE_MODE=dev
# Teszt környezet
STRIPE_DEV_PUB_KEY=pk_test_...
STRIPE_DEV_PRI_KEY=sk_test_...
STRIPE_DEV_WEBHOOK_SECRET=whsec_...
# Éles környezet
STRIPE_PROD_PUB_KEY=pk_live_...
STRIPE_PROD_PRI_KEY=sk_live_...
STRIPE_PROD_WEBHOOK_SECRET=whsec_...
STRIPE_CURRENCY=hufVáltozó | Leírás |
|---|---|
|
|
| Publishable key (frontendhez, ha szükséges) |
| Secret key — Checkout Session létrehozáshoz |
| Webhook aláírási titok |
| Pénznem kód (alapértelmezett: |
Stripe webhook beállítása
A csomag alapértelmezett webhook útvonala:
POST /stripe/webhookRoute név: stripe-gateway.webhook
A Stripe Dashboardban (Developers → Webhooks) add hozzá ezt az URL-t, és válaszd ki az eseményt:
checkout.session.completed
A generált Signing secret értéket másold be a megfelelő .env változóba (STRIPE_DEV_WEBHOOK_SECRET vagy STRIPE_PROD_WEBHOOK_SECRET).
Használat
Checkout indítása
use Romix\StripeGateway\Data\CheckoutLineItem;
use Romix\StripeGateway\Data\CheckoutRequest;
use Romix\StripeGateway\Services\CheckoutService;
$pending = app(CheckoutService::class)->createSession(
new CheckoutRequest(
lineItems: [
new CheckoutLineItem(
name: 'Pro csomag – éves előfizetés',
amount: 29900,
quantity: 1,
),
],
customerEmail: 'vevo@example.com',
metadata: [
'order_id' => '123',
],
// successUrl és cancelUrl opcionális — alapértelmezés a config route-jai
),
);
$session = app(CheckoutService::class)->retrieveSession((string) $pending->stripe_session_id);
return redirect()->away($session->url);A createSession():
Létrehoz egy
stripe_pending_checkoutsrekordotStripe Checkout Session-t nyit a megadott tételekkel
Visszaadja a
PendingCheckoutmodellt astripe_session_id-val
Sikeres fizetés feldolgozása
A CheckoutPaid esemény két helyről indulhat:
Webhook:
checkout.session.completed(ajánlott, megbízható)Success URL: a vásárló visszatérésekor (
/register/payment/success?session_id=...)
A listenerben jelöld completed státuszra a pending rekordot és végezd el az üzleti logikát:
use Romix\StripeGateway\Events\CheckoutPaid;
class CompleteOrderOnCheckoutPaid
{
public function handle(CheckoutPaid $event): void
{
$pending = $event->pendingCheckout;
if ($pending->isCompleted()) {
return;
}
// payload: line_items, metadata, customer_email
$payload = $pending->payload;
// ... saját logika ...
$pending->markCompleted(referenceType: 'order', referenceId: 123);
}
}Beépített route-ok
Metódus | Útvonal | Route név | Leírás |
|---|---|---|---|
|
|
| Stripe webhook |
|
|
| Sikeres fizetés |
|
|
| Megszakított fizetés |
A success/cancel útvonalak és a visszairányítási logika testreszabható a host alkalmazásban — publikáld a configot és állítsd be a checkout.success_route / checkout.cancel_route értékeket, vagy add meg egyedi URL-eket a CheckoutRequest-ben.
Adatbázis táblák
Tábla | Leírás |
|---|---|
| Függő és befejezett Checkout munkamenetek, payload, Stripe session ID |
Konfiguráció
A config/stripe-gateway.php főbb beállításai:
Kulcs | Leírás |
|---|---|
| Aktív környezet ( |
| API kulcsok környezetenként |
| Stripe pénznem |
| Sikeres visszatérés route neve |
| Megszakítás route neve |
| Webhook URL útvonal (alapértelmezett: |
| Aláírás időtűrés másodpercben (alapértelmezett: 300) |
| Route middleware csoport (alapértelmezett: |
Hibakeresés
Secret key is not configured: ellenőrizd a
STRIPE_MODEértékét és a megfelelőSTRIPE_*_PRI_KEYváltozót.Webhook secret not configured / Invalid signature: a webhook secret nem egyezik a Stripe Dashboard értékével, vagy rossz környezet (
devvsprod) van aktív.A fizetés még nem lett teljesítve: a success URL-re érkezett a felhasználó, de a Stripe session még nem
paid— várj, vagy támaszkodj a webhookra.Stripe események és hibák: Stripe Dashboard → Developers → Webhooks → eseménynapló.
Laravel log:
Stripe webhook signature verification failed.
Élesítés előtt mindig teszteld a Stripe teszt kulcsokkal (STRIPE_MODE=dev).
Frissítés
Új verzió telepítése a privát tárolóból:
composer update romix/stripe-gateway
php artisan migrateFrissítés után ellenőrizd a config/stripe-gateway.php fájlt, ha korábban publikáltad — szükség esetén hasonlítsd össze a csomag vendor/romix/stripe-gateway/config/stripe-gateway.php fájljával.