Untitled
unknown
plain_text
a year ago
1.5 kB
6
Indexable
<?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;
}
}Editor is loading...
Leave a Comment