繁体   English   中英

如何通过结帐在我的控制器上获得条带令牌?

[英]How can i get a stripe token on my controller with checkout?

我在尝试使用checkout时尝试获取条纹令牌,但是当我提交嵌入表单时,我没有POST方法,而且我也不知道如何在我的php控制器上拥有令牌。 这是我的代码:

<script>
var handler = StripeCheckout.configure({
    key: 'pk_test_WWlLRtqEY2yfJUlfA4TRRcyf',
    image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
    locale: 'auto',
    token: function(token) {
        console.log(token.id);
    }
});

document.getElementById('customButton').addEventListener('click', function(e) {
    // Open Checkout with further options:
    handler.open({
        name: 'Musée du Louvre',
        description: 'Biletterie en ligne',
        currency: 'eur',
        amount: '{{ price }}' * 100,
        email: '{{ mail }}',
        allowRememberMe: false,
    });
    e.preventDefault();
});

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

我尝试过这个:

<form post="" method="post">
my script code
</form>

但是,当我单击“付款”页面时,不会刷新。

有人可以帮我吗?

想法是更改token回调中的代码,以将token发送到您的服务器,而不是将其记录到控制台。

更改您的表单,使其具有条纹令牌ID和客户输入的电子邮件的隐藏字段:

<form action="/your/route" method="POST" id="payment-form">
    <input type="hidden" id="stripeToken" name="stripeToken" value="tok_XXX" />
    <input type="hidden" id="stripeEmail" name="stripeEmail" value="email@example.com" />
</form>

然后更改您的JS以设置这些值并提交表单:

token: function(token) {
  $("#stripeToken").val(token.id);
  $("#stripeEmail").val(token.email);
  $("#payment-form").submit();
}

这将提交您的表单,并且您在服务器上的路由将在POST参数中接收stripeTokenstripeEmail值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM