Arkadaşlar 1 haftadır bunla uğraşıyorum dökümana 40 kere baktım ama nedense anlamıyorum çözemiyorum yani.
Dökümanda bahsedilen tüm ayarları yaptıktan sonra bir tane controller oluşturdum. Aşağıdaki kod ile birlikte stripe'ın kendi sitesine yönleniyorum ve kart bilgilerini yazıyorum.
public function checkout(Request $request, SubscriptionPlan $plan)
{
$checkout = $request->user()->newSubscription('default', $plan->stripe_id)->checkout([
'success_url' => route('success', ['plan' => $plan->id]),
'cancel_url' => route('error', ['plan' => $plan->id]),
]);
return $checkout;
}
Ödeme başarıyla tamamlandı ve success sayfasına yönlendim. Stripe aboneliğim kendi sitesinden incelediğimde başlamış durumda. Fakat bunu kendi sitemde ödeme dönüşünde başlatabilmem lazım. Şu komut aboneliği başlatmak için işe yarıyor.
$request->user()->newSubscription('default', $plan->stripe_id)
->quantity(null)
->create($request->token);
Fakat bu kodu nerede kullanacağımı çözemiyorum. Cashier bir StripeEventListener oluşturmamı söylemiş o da şu şekilde
class StripeEventListener
{
/**
* Handle received Stripe webhooks.
*/
public function handle(WebhookReceived $event): void
{
if ($event->payload['type'] === 'invoice.payment_succeeded') {
\Log::info('Event çalıştı');
$request->user()->newSubscription('default', $plan->stripe_id)
->quantity(null)
->create($request->token);
}
}
}
protected $listen = [
WebhookReceived::class => [
StripeEventListener::class,
],
];
Ne log geliyor ne abonelik başlatılıyor, kısacası buraya hiç ulaşamıyorum bile. Neyi yanlış yapıyorum bilmiyorum fakat stripe_cli ile'de baktım tüm eventler geliyor takır takır laravel tarafında mı alamıyorum anlamadım. Lütfen yardım yıldım bununla uğraşmaktan 😫