Полоса Apple платит, как обнаружить изменение shippingOption и получить адрес доставки? - PullRequest
0 голосов
/ 03 ноября 2018

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

1) Если существует несколько способов доставки, как мы можем определить, какой из них выбран клиентом? потому что Stripe упростил перечисление нескольких способов доставки в этой ссылке https://stripe.com/docs/stripe-js/elements/payment-request-button

Например, скажем, мой shippingOption следующим образом:

    var paymentRequest = stripe.paymentRequest({
      country: 'US',
      currency: 'usd',
      total: {
        label: 'Demo total',
        amount: 1000,
      },

      requestShipping: true,
      // `shippingOptions` is optional at this point:
      shippingOptions: [
        // The first shipping option in this list appears as the default
        // option in the browser payment interface.
        {
          id: 'free-shipping',
          label: 'Free shipping',
          detail: 'Arrives in 5 to 7 days',
          amount: 0,
        },
        {
          id: 'paid-shipping',
          label: 'Paid shipping',
          detail: 'Arrives in 1 to 3 days',
          amount: 2000,
        }
      ],
    });

И клиент выбрал второй вариант доставки. Поэтому, когда они это сделают, я бы хотел запустить какое-то событие, чтобы я мог обновить общую стоимость заказа.

2) Как мы можем получить выбранный пользователем адрес доставки после того, как пользователь отправил лист?

В настоящее время я нашел следующие данные, но это не тот правильный способ получить адрес доставки пользователя после успешной оплаты.

paymentRequest.on('token', function(ev) {

  $('#debug').html(JSON.stringify(ev));  // this is printing all the selected values in apple pay sheet

})

К вашему сведению: мой код на стороне сервера выглядит следующим образом:

<?php 
require_once('vendor/autoload.php');
\Stripe\Stripe::setApiKey("sk_test_X1UrHPm0PaB6fOyoxHr9hWyJ");

// Token is created using Checkout or Elements!
// Get the payment token ID submitted by the form:

$token = $_POST['stripeToken'];
$charge = \Stripe\Charge::create([
    'amount' => 55555,
    'currency' => 'usd',
    'description' => 'Example description',
    'source' => $token,
    'metadata' => ['order_id' => 6735],
]);
...