Stripe ile Ödeme Entegrasyonu: E-ticaret Rehberi

z

zafer ak

Yazar

17 November 2025 2 dakika okuma 2 görüntülenme
Stripe ile Ödeme Entegrasyonu: E-ticaret Rehberi
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.

İlgili Yazılar