Untitled
<?php namespace App\Services; use Stripe\Checkout\Session; class StripeClient { public static function build() { return new self(); } public function createCheckout($description, $amount, $metadata, $email, $orderIdentifier, $productImageUrl): Session { $client = new \Stripe\StripeClient(config('services.stripe.secret')); return $client->checkout->sessions->create([ 'success_url' => route('services.payments.session.completed', $orderIdentifier), 'cancel_url' => route('services.payments.session.canceled', $orderIdentifier), 'mode' => 'payment', 'line_items' => [ [ 'price_data' => [ 'currency' => 'usd', 'product_data' => [ 'name' => $description, 'images' => [$productImageUrl] ], 'unit_amount' => round($amount * 100), ], 'quantity' => 1, ] ], 'customer_email' => $email, 'payment_method_types' => [], 'metadata' => $metadata ]); } public function isSessionPaid($sessionId): bool { $client = new \Stripe\StripeClient(config('services.stripe.secret')); $session = $client->checkout->sessions->retrieve($sessionId); return $session->payment_status == Session::PAYMENT_STATUS_PAID; } }
Leave a Comment