首页 > 解决方案 > 条带支付成功后执行JS函数

问题描述

我决定使用 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 社区寻找建议。

标签: javascriptstripe-payments

解决方案


您可以在令牌回调中运行代码:

<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>

推荐阅读