Я использую 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],
]);