#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 с базой данных