Как я могу получить токен полосы на моем контроллере с оформлением заказа? - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь получить токен чередования, когда использую 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>

, но когда я нажимаю на оплату, страница не обновляется.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 22 ноября 2018

Идея состоит в том, чтобы изменить код в обратном вызове token, чтобы отправить токен на сервер, а не регистрировать его на консоли.

Измените форму, чтобы иметь скрытое поле для идентификатора токена чередованияи адрес электронной почты, введенный клиентом:

<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();
}

Это отправит вашу форму и ваш маршрут насервер получит значения stripeToken и stripeEmail в параметрах POST.

...