Отправить детали адреса доставки с помощью Stripe Custom Checkout - PullRequest
0 голосов
/ 02 июля 2018

У меня есть проверка полосы, использующая теперь неподдерживаемый параметр "data-shipping-address =" true "". Это работает, как и ожидалось, при использовании простой проверки полосы с помощью следующего кода:

<script 
    src="https://checkout.stripe.com/checkout.js" 
    class="stripe-button"
    data-key="<?php echo $stripe['publishable_key']; ?>"
    data-amount="1000" 
    data-currency="gbp" 
    data-allow-remember-me="true" 
    data-shipping-address="true" 
    data-billing-address="true" 
    data-label="Proceed to payment details" 
    data-image="" 
    data-description="TrillShirts">
</script>

но если я позвоню в файл .js, я не смогу разместить данные, взятые из данных о доставке. Вот код, который у меня есть:

var handler = StripeCheckout.configure({
  key: 'pk_test_JfqHIgPSCG2oWOsJ54PWS0Nl',
  image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
  locale: 'auto',
  billingAddress: 'true',
  shippingAddress: 'true',
  token: function(token) {
    console.log(token.id);
    console.log(token.email);
    // here I try to find the shippingAddress using cosole.log
    console.log(token.shippingAddressLine1);
    console.log(token.stripeShippingAddressLine1);
    // When I eventually have the shipping address, I will insert it in the same way as below
    $(".stripeToken").val(token.id);
    $(".stripeEmail").val(token.email);
    $(".stripe").submit();

    }
});

document.getElementById('pay').addEventListener('click', function(e) {
  // Open Checkout with further options:

    handler.open({
      name: 'TrillShirts',
      description: 'Childcatcher Tee',
      currency: 'gbp',
      amount: 2000
    });
  });
});

Оба следующих параметра возвращают неопределенное значение в консоли, поэтому я не могу определить формат, в котором возвращаются сведения об отправке.

    console.log(token.shippingAddressLine1);
    console.log(token.stripeShippingAddressLine1);        

Как только я узнаю формат и получу успешный журнал консоли, я могу использовать jQuery для вставки данных в форму перед отправкой.

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

1 Ответ

0 голосов
/ 02 июля 2018

При использовании Custom Checkout, когда включен shippingAddress, сведения о доставке передаются функции обратного вызова token в качестве второго аргумента функции. Это параметр args, показанный в справочнике по обратному вызову token в этом документе .

Таким образом, в вашем случае вам нужно изменить сигнатуру функции обратного вызова токена с function(token) {...} на function(token, args) {...}, и тогда вы сможете получить информацию от args.

Вот пример: https://jsfiddle.net/rghpes57/3/ в этом примере второй console.log - это тот, на который вы хотите посмотреть, чтобы увидеть, как выглядит объект.

...