Stripe Checkout с PHP/JS отправляет, но не отображается в учетной записи Stripe
Я пытаюсь заставить Stripe оформить заказ с индивидуальной суммой оплаты. Откроется всплывающая форма Stripe, но в моем аккаунте Stripe ничего не отображается.
В моем фактическом коде у меня есть введенные ключи API. Я также не использую композитора.
<form action="charge.php" method="POST" id="payment-form">
<input style="width: 100px; float: right;" class="form-control" type="number" id="custom-donation-amount" placeholder="$50.00" min="0" step="5.00"/>
<input class="donate-desc" style="width: 100%; float: right;" class="form-control" type="text" placeholder="What is this donation for?"/>
<button style="float: left; margin-right: 10px;" id="customButton" class="simpay-payment-btn stripe-button-el"><span>Make a Donation</span></button>
<script src="https://checkout.stripe.com/checkout.js"></script>
<script>
var handler = StripeCheckout.configure({
key: 'test publishable key',
image: 'image.png',
token: function(token) {
var stripeToken = token.id;
}
});
document.getElementById('customButton').addEventListener('click', function(e) {
// This line is the only real modification...
var amount = jQuery("#custom-donation-amount").val() * 100;
var desc = jQuery('.donate-desc').val();
handler.open({
name: 'name',
description: desc,
amount: Math.round(amount)
});
e.preventDefault();
});
</script>
Вот обвинение
<?php
require '/stripe/Stripe.php';
$stripe = array(
"secret_key" => "test secret key",
"publishable_key" => "test publishable key"
);
\Stripe\Stripe::setApiKey($stripe['secret_key']);
$token = $_POST['stripeToken'];
$charge = \Stripe\Charge::create(array(
'amount' => $_POST['amount'],
'descrition' => $_POST['description'],
'currency' => 'usd',
'source' => $token
));
?>
1 ответ
В вашем коде вы просто устанавливаете переменную stripeToken
к token.Id
, Вам все еще нужно передать эту переменную в бэкэнд для обработки.
Другими словами, после того, как вы получите token.id
значение, вы должны сделать новый запрос (AJAX или иным образом) к некоторой конечной точке на вашем бэкэнде для обработки. То, как ваша форма структурирована вокруг вашего скрипта, не будет работать.
Вам нужно что-то вроде этого: https://jsfiddle.net/osrLsc8m/