Как получить адрес доставки по умолчанию с помощью кнопки "Запрос на оплату" до того, как клиенты нажимают "Оплатить"? Я использую Stripe.js & Elements
Я использую кнопку Stripe PaymentRequest для сбора информации об оплате и доставке, чтобы позже обработать платеж с помощью Stripe на стороне сервера. Я нацеливаюсь на ApplePay, но в настоящее время тестирую под API PaymentRequest (Chrome).
Мне нужно знать адрес доставки клиента, чтобы рассчитать и показать сумму налога (и обновить общую сумму) перед отправкой формы оплаты. Я могу легко получить это через событие "shippingaddresschange", но только если клиент меняет адрес.
Как я могу получить адрес доставки по умолчанию, с которого автоматически загружается форма запроса на оплату, если клиент не изменяет ее позже? Начальный (по умолчанию) адрес, по-видимому, не вызывает событие "shippingaddresschange".
3 ответа
См. Примеры на https://rsolomakhin.github.io/pr/single/ и https://rsolomakhin.github.io/pr/multi/. Chrome предварительно выбирает адрес, если вы предварительно выбираете вариант доставки, который вы используете для любого адреса в мире, то есть единую доставку по всему миру. Здесь вы не будете знать адрес доставки, пока пользователь не авторизует платеж.
Однако в вашем случае вам нужно знать адрес доставки, чтобы рассчитать и показать сумму налога. Это означает, что у вас нет единой ставки по всему миру, поэтому вы не выбрали бы предварительно вариант доставки. В этом случае Chrome требует от пользователя явного одобрения предоставления вам своего адреса, что означает, что адрес пользователя не будет предварительно выбран в пользовательском интерфейсе, как это реализовано прямо сейчас.
Я думаю, что это ошибка с Chrome. Safari/ApplePay активирует начальный onshippingaddresschange
когда платежный лист отображается, а Chrome - нет.
Я также столкнулся с проблемой с Chrome, где я выбираю адрес доставки и onshippingaddresschange
триггеры. Затем я отменяю / закрываю диалоговое окно и снова открываю, но выбран адрес доставки "по умолчанию", и все данные (т. Е. Вариант доставки, налог и т. Д.) В моем платежном листе по-прежнему задаются из предыдущего onshippingaddresschange
событие.
ApplePay не имеет той же проблемы, потому что это вызовет onshippingaddresschange
событие, как только оно открывается.
Это не совсем "ответ", но я надеюсь, что это даст немного больше контекста.
Там нет такой вещи, как адрес доставки по умолчанию. Пользователь всегда должен явно выбрать один, прежде чем вы получите shippingaddresschange
событие. Это из соображений конфиденциальности.