Я встроил Stripe в свой сайт. Код ниже скопирован непосредственно из документации полосы. Хотя между этим кодом и моей реализацией есть незначительные различия, такие различия не имеют отношения к вопросу, так как и мой код, и показанный код работают правильно
Сначала я устанавливаю соответствующие файлы.
composer.json
{
"require": {
"stripe/stripe-php": "*"
}
}
Затем я делаю заказ в JavaScript. (В этом случае взимается плата в размере 9,99 долл. За «Пример начисления», но вы поняли идею. Ниже приведена простая проверка, моя - заказная проверка, но это не должно иметь значения для вопроса.)
<form action="nextpage.php" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<test key here>"
data-amount="999"
data-name="<myName>"
data-description="Example charge"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-currency="aud">
</script>
</form>
Эта проверка очень хороша в обнаружении большинства ошибок, и если она не может их найти, она передает мне токен для зарядки.
Наконец, я добавил страницу для создания заряда
require 'vendor/autoload.php';
\Stripe\Stripe::setApiKey("<test key here>");
$token = $_POST['stripeToken'];
$charge = \Stripe\Charge::create([
'amount' => 999,
'currency' => 'aud',
'description' => 'Example charge',
'source' => $token,
]);
Пока это хорошо. В среде тестирования это всегда успешно. Или, если я проверяю карту, которая не должна быть успешной, она всегда дает сбой при проверке.
Тем не менее, предположим, что токен успешно создан, но тогда проблема возникает на стороне сервера. Как мне это обнаружить?
Точнее, если бы у меня была такая функция, как alert("Your payment has been successful")
или echo "Your payment has been successful"
, Где было бы правильное место для вызова?