Laravel Stripe не может создать сеанс оформления заказа для уже существующего счетаPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Laravel Stripe не может создать сеанс оформления заказа для уже существующего счета

Сообщение Anonymous »

Мой стек: Laravel и Stripephp
Сценарий: имеется открытый счет, который уже создан для подписки. Идентификатор счета-фактуры Stripe (in_1PVBjnSE4D7cjIupbEfXsQ4w).
Я хочу добиться следующего
шага 1 – создать URL-адрес для оплаты клиентом созданного счета. .
Шаг 2 – клиент платит по идентификатору счета (in_1PVBjnSE4D7cjIupbEfXsQ4w).
Шаг 3 – после оплаты клиент должен быть перенаправлен обратно на URL-адрес перенаправления.
Проблема: перенаправление работает, но указанный счет не оплачен. но вместо этого выставляется новый счет на ту же сумму.
Что я пытался: я пытаюсь создать чередующийся сеанс, который помогает в перенаправлении. но, похоже, я не могу настроить систему чередования для оплаты определенного счета.
вот мой код контроллера, который генерирует сеанс чередования.

Код: Выделить всё

public function createCheckoutSession(Request $request, $invoiceId)
{
$firmId = session('firmdatas.id');
$firmData = Firmregistration::findOrFail($firmId);

$invoice = FirmInvoices::findOrFail($invoiceId);
$stripeObj = new \Stripe\StripeClient(config('services.stripe.secret'));
$subscription = $stripeObj->subscriptions->retrieve($invoice->stripe_subscription_id);
try {
$session = $stripeObj->checkout->sessions->create([
'payment_method_types' => ['card'],
'line_items' => [[
'price_data' => [
'currency' => 'usd',
'product_data' => [
'name' => 'Invoice Payment',
],
'unit_amount' => $invoice->amount_due,
],
'quantity' => 1,
]],
'subscription_data' => [
'items' => [
['plan' => $subscription->items->data[0]->id], // Assuming only one item in the subscription
],
],
'mode' => 'payment',
'customer' => $firmData->stripe_id,
'payment_intent_data' => [
'description' => "Payment for Invoice #{$invoice->number}",
'metadata' => [
'invoice_id' => $invoice->invoice_id,
],
],
'success_url' => route('admin.subscription.invoice.paymentsuccess', [
'invoiceid' => $invoice->invoice_id,
'amount_paid' => $invoice->amount_due, // Stripe will update the actual amount paid after payment
'receipt_url' => '', // Placeholder, will be updated below
]),
'cancel_url' => route('admin.subscription.view'),
]);

// Redirect to the Checkout Session URL
return redirect()->away($session->url);

} catch (\Exception $e) {
Log::error('Error creating Stripe Checkout Session: ' . $e->getMessage());
return view('errors.500');
}
}
Выше я пытаюсь передать идентификатор подписки или счета-фактуры. Кажется, ничего не работает. конкретный счет не оплачен.
Пожалуйста, сообщите.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ng-invoice
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»