Stripe ile Ödeme Entegrasyonu: E-ticaret Rehberi
z
zafer ak
Yazar
17 November 2025
2 dakika okuma
2 görüntülenme
Stripe payment gateway entegrasyonu, subscription billing ve webhook handling. Laravel Cashier ile ödeme sistemi.
Stripe Nedir?
Stripe, online ödeme işlemleri için global payment gateway'dir. Tek seferlik ödemeler, subscription'lar ve marketplace ödemeleri destekler.
Temel Kavramlar
- Payment Intent: Ödeme niyeti, amount ve currency
- Customer: Müşteri profili, kayıtlı kartlar
- Subscription: Recurring ödemeler
- Webhook: Event notifications
Laravel Cashier Kurulum
composer require laravel/cashier
php artisan migrate
// User model
use Laravel\Cashier\Billable;
class User extends Model
{
use Billable;
}
// .env
STRIPE_KEY=pk_test_xxx
STRIPE_SECRET=sk_test_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx
Tek Seferlik Ödeme
// Controller
public function checkout(Request $request)
{
return $request->user()
->checkout([
'price_xxx' => 1,
], [
'success_url' => route('checkout.success'),
'cancel_url' => route('checkout.cancel'),
]);
}
// Stripe Checkout Session kullanır
Subscription
// Subscription oluştur
$user->newSubscription('default', 'price_monthly')
->create($paymentMethod);
// Subscription kontrol
if ($user->subscribed('default')) {
// Premium içerik
}
// Plan değiştir
$user->subscription('default')
->swap('price_yearly');
// İptal
$user->subscription('default')->cancel();
Payment Intent (Custom)
// Backend
$intent = $user->createSetupIntent();
return view('billing', ['intent' => $intent]);
// Frontend (Stripe.js)
const stripe = Stripe('pk_test_xxx');
const { setupIntent, error } = await stripe.confirmCardSetup(
clientSecret,
{
payment_method: {
card: cardElement,
billing_details: { name: cardholderName }
}
}
);
Webhooks
// routes/web.php
Route::post('stripe/webhook',
[WebhookController::class, 'handleWebhook']
);
// Custom webhook handler
protected function handlePaymentSucceeded($payload)
{
$paymentIntent = $payload['data']['object'];
// Order işle
}
// Webhook events
- payment_intent.succeeded
- customer.subscription.created
- invoice.payment_succeeded
- invoice.payment_failed
Test Kartları
Başarılı: 4242 4242 4242 4242
Reddedilir: 4000 0000 0000 0002
3D Secure: 4000 0027 6000 3184
Güvenlik
- PCI DSS uyumluluğu (Stripe Elements)
- Webhook signature verification
- Idempotency keys
- HTTPS zorunlu
Sonuç
Stripe, modern e-ticaret siteleri için en popüler ödeme çözümüdür. Laravel Cashier entegrasyonu işi çok kolaylaştırır.