Я пытаюсь настроить полосу на своем сайте с помощью PHP, но я теряюсь из-за разной документации, которую я нахожу.
Я успешно создал кнопку оплаты со следующим кодом
include(ROOT.'/files/lib/stripe-php-7.16.0/init.php');
\Stripe\Stripe::setApiKey('sk_test_XXXXXXX');
// ___________
$session = \Stripe\Checkout\Session::create([
'payment_intent_data' => [
'setup_future_usage' => 'on_session',
],
'payment_method_types' => ['card'],
'line_items' => [[
'name' => 'Acheter des chaussures',
'description' => 'Acheter des chaussures sur le site web',
'images' => ['https://i.imgur.com/J4o8Fmt.png'],
'amount' => 600,
'currency' => 'eur',
'quantity' => 1,
],
],
'success_url' => 'https://www.my-site.com/store/test',
'cancel_url' => 'https://www.my-site.com/store/test',
'mode' => 'payment',
'customer' => $customer_stripe_id,
'client_reference_id' => '123456',
]);
А затем:
<span id="payment" class="btn btn-info">Tester</span>
<script src="https://js.stripe.com/v3/"></script>
<script>
$('#payment').on('click', function(){
var stripe = Stripe('pk_test_YYYYYYYY');
stripe.redirectToCheckout({
sessionId: '<?= $session->id ?>',
}).then(function (result) {
alert(result.error.message);
});
});
</script>
Но когда я плачу, я получаю два IPN: один payment_intent.succeeded и один charge.succeeded .
![enter image description here](https://i.stack.imgur.com/yxme8.png)
![enter image description here](https://i.stack.imgur.com/7L9DH.png)
Дело в том, что я вообще не знаю разницы и полезность двух, потому что загрузка IPN не содержит client_reference_id (который я должен восстановить, чтобы проверить заказ в php), но payment_intent.succeeded не содержит не все данные.
I Хотелось бы узнать о полезности того и другого, узнать, нет ли ошибки в моем способе управления ipn, и особенно о том, на каком IPN я могу считать, что платеж завершен, и что я могу отправить продукт клиенту.
Спасибо!