Выполнить функцию JS после успешной оплаты полосой - PullRequest
0 голосов
/ 30 марта 2019

Я решил использовать пользовательский код кнопки, предоставленный Stripe, для приема оплаты за один продукт, который я продаю.Это выглядит следующим образом:

<script src="https://checkout.stripe.com/checkout.js"></script>

<button id="customButton">Hire Bike (1 Day)</button>

<script>
var handler = StripeCheckout.configure({
key: 'MY_KEY',
image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
locale: 'auto',
token: function(token) {
    // You can access the token ID with `token.id`.
    // Get the token ID to your server-side code for use.
}
});

document.getElementById('customButton').addEventListener('click', function(e) {
// Open Checkout with further options:
handler.open({
    name: 'Bike Company',
    description: '1 Day Bike Hire',
    currency: 'usd',
    amount: 25000
});
e.preventDefault();
});

// Close Checkout on page navigation:
window.addEventListener('popstate', function() {
handler.close();
});
</script>

Хотя это работает (конечно, когда я использую свой фактический открытый ключ API), я не могу найти решение для способа выполнить некоторые из моих собственных JSкогда платеж успешен.

Я не могу найти ответ в документации, поэтому ищу предложения от сообщества SO.

1 Ответ

1 голос
/ 30 марта 2019

Вы можете запустить код в обратном вызове токена:

<script src="https://checkout.stripe.com/checkout.js"></script>

<button id="customButton">Hire Bike (1 Day)</button>

<script>
var handler = StripeCheckout.configure({
key: 'MY_KEY',
image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
locale: 'auto',
token: function(token) {
    // DO STUFF HERE
    alert("Wahoo! You paid!")
}
});

document.getElementById('customButton').addEventListener('click', function(e) {
// Open Checkout with further options:
handler.open({
    name: 'Bike Company',
    description: '1 Day Bike Hire',
    currency: 'usd',
    amount: 25000
});
e.preventDefault();
});

// Close Checkout on page navigation:
window.addEventListener('popstate', function() {
handler.close();
});
</script>
...