Apple Pay при использовании в Интернете stripe.js , заполнение всплывающего окна

#applepay #applepayjs

#applepay #applepayjs

Вопрос:

Я тестирую Apple Pay JS, у меня он работает полностью. Тем не менее, я хотел бы заполнить всплывающее окно подтверждения (то, которое запрашивает принятие покупки) некоторыми другими полями, такими как имя пользователя или адрес. В документации говорится, что это можно сделать, но примеров нет. Вот код, на который я ссылаюсь:

 var request = {
countryCode: 'US',
currencyCode: 'USD',
supportedNetworks: ['visa', 'masterCard'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Label', amount: '10.00' },
}
var session = new ApplePaySession(1, request);
  

Ответ №1:

Это, безусловно, можно сделать.

Объект PaymentRequest позволяет включить shippingContact объект, представляющий собой словарь доставки. Доступные поля перечислены на их странице PaymentContact.

Таким образом, ваш платежный запрос будет выглядеть

 var request = {
countryCode: 'US',
currencyCode: 'USD',
supportedNetworks: ['visa', 'masterCard'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Label', amount: '10.00' },
shippingContact: {
  givenName: 'Martin', familyName: 'StackOverflow',
  addressLines: ['123 Main St', 'Apt: 5'],
  locality: 'Whoville',
  administrativeArea: 'FL',
  postalCode: '43210',
  country: 'US'
}  
}
var session = new ApplePaySession(1, request);
  

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

Ответ №2:

Насколько мне известно, вы не можете записывать контактную информацию в таблицу Apple Pay с помощью JavaScript API, а только считывать значения, введенные пользователем. Предварительно заданные значения поступают с телефона из данных, введенных пользователем для предыдущих сеансов Apple Pay, будь то в Интернете или в приложениях, затем сохраняются устройством в кошельке.

Вы можете прочитать некоторые контактные данные из события, переданного функции onshippingcontactselected, при этом все возвращается в событии, переданном функции onpaymentauthorized.