Как я могу добавить идентификатор и имя продукта в сеансе stripe Laravel

#php #laravel #stripe-payments

Вопрос:

Я пытаюсь сделать так, чтобы у каждого сеанса был свой идентификатор продукта на основе продуктов моей базы данных, так что это мой blade.php:

 <?php
require_once(__DIR__.'/../../../vendor/autoload.php');


StripeStripe::setApiKey('sk_test_51xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

$session = StripeCheckoutSession::create([
    'payment_method_types' => ['card'],

    'line_items' => [[

      'price_data' => [
        'currency' => 'usd',
        'product_data' => [
          'name' => 'T-shirt',
        ],
        'unit_amount' => 2000,
      ],
      'quantity' => 1,

    ]],
    'mode' => 'payment',
    'success_url' => 'https://example.com/success',
    'cancel_url' => 'https://example.com/cancel',
  ]);

?>
main>

    <div id="hey" class="alert alert-warning alert-dismissible fade show" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
          <span aria-hidden="true">amp;times;</span>
        </button>
      </div>

<div class="list-group" style="    margin: 100px 120px;">
    <h3>Account ID: #{{$product->id}}</h3>
    <h3>Account ID: #{{auth()->user()->name}}</h3>
  <input type="submit" id="submitBtn" class="btn btn-primary" data-bs-toggle="button" autocomplete="off">
 

мой маршрут

 Route::post('webhook/payment/succeeded', function (Request $request){
     if($request->type === "charge.succeeded"){
         try{
 Payment::create([
    'stripe_id' => $request->data['object']['id'],
     'amount' => $request->data['object']['amount'],
     'email' => $request->data['object']['billing_details']['email'],
     'name' => $request->data['object']['billing_details']['name'],
 ]);         } catch (Exception $e) {
            return $e->getMessage();
        }
        return 'ok';
     }

});
 

все, что я пытаюсь сделать, это добавить идентификатор продукта в сеанс stripe, чтобы я мог удалить этот продукт, когда оплата пройдет успешно!, надеюсь, вы поймете

Ответ №1:

Я не уверен, почему вы хотите удалить продукт после успешной оплаты? Но чтобы включить идентификатор продукта, вам потребуется либо:

a. Заранее создайте продукт Stripe (также сопоставьте его с вашей базой данных продуктов), затем укажите его идентификатор при создании сеанса.

б. Поместите метаданные при создании сеанса, укажите идентификатор базы данных вашего продукта внутри

Комментарии:

1. Спасибо , сэр, причина, по которой я хочу удалить его, заключается в том, что так должен работать мой веб-сайт электронной коммерции, но в другом случае идентификатор продукта и цена должны храниться в другой таблице, например в таблице заказов

2. как я могу сопоставить идентификатор продукта stripe с базой данных