Я пытаюсь интегрировать Stripe в проект php, и все работает нормально, за исключением того факта, что намерение оплаты client_secret всегда равно null, и я действительно знаю, почему, но не могу понять, как это исправить, я использую javascript файл, в котором находится прослушиватель для кнопки отправки для создания платежного намерения. Проблема в том, что слушатель пытается извлечь данные json перед их созданием, значение client_secret равно нулю, потому что я устанавливаю его значение сразу после создания платежного намерения. Как это можно решить? Любой совет может помочь, спасибо.
Вот код, который я написал: намерение. php:
$intent= \Stripe\PaymentIntent::create(
array(
'amount' => $price + ($price * $tva),
'currency' => 'EUR',
'setup_future_usage' => 'off_session',
)
);
$intentcls=$intent->client_secret;
намерение. js:
var form = document.getElementById('payment-form');
form.addEventListener('submit', function(event) {
var response = fetch('/secret').then(function(response) {
return response.json();
}).then(function(responseJson) {
var clientSecret = responseJson.client_secret;
stripe.confirmCardPayment(
clientSecret,
{
payment_method: {card: card}
}
).then(function(result) {
if (result.error) {
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
} else {
var errorElement = document.getElementById('card-errors');
errorElement.textContent = 'Paiement effectué avec succées';
stripeTokenHandler(result.token);
}
});
секрет. php:
echo json_encode(array('clientsecret' => $intentcls));