Как вы тестируете Apple Pay в Safari?

Я настраиваю Apple Pay в Интернете с помощью Stripe и хочу использовать учетную запись Sanbox Tester, которую мы установили в iTunes Connect, для тестирования на iOS и macOS в Safari.

На тестовом устройстве (2017 iPad) я вошел в iCloud с учетной записью Sandbox Tester и добавил тестовую карту в Кошелек в Настройки. На моем веб-сайте разработки появляется кнопка Apple Pay, и взаимодействие работает нормально.

Я создал новую учетную запись на своем MacBook Pro (Retina, Mid 2015) и снова вошел в iCloud с той же учетной записью Sandbox Tester. Однако, когда я просматриваю свой сайт разработки, функция checkAvailability всегда возвращает false:

Stripe.applePay.checkAvailability(function(available) {
  alert(available);
  ...
}

Предположительно, это потому, что мне нужна дальнейшая настройка для Apple Pay для работы. Но для жизни я не могу заставить macOS сотрудничать. После прочтения некоторых документов здесь есть некоторые моменты, которые, по моему мнению, актуальны:

  • В моих настройках iPad Wallet и Apple Pay нет опции "Разрешить платежи на Mac" в любом месте
  • В моем приложении настроек MacOS нет опции "Кошелек и платежи".
  • Не упоминается Apple Pay в настройках Safari для MacOS, вкладке конфиденциальности
  • Передача обслуживания включена на Mac

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

Update

  • Моя версия macOS Sierra - 10.12.4 (16E195)
  • Запуск window.ApplePaySession.canMakePayments() в консоли возвращает false

Обновление 2

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

Кроме того, Universal Clipboard работает в обоих направлениях.

Примечание.. В другой (небезопасной) учетной записи iCloud на этом же MacBook, который использует передачу обслуживания с другим iPad, параметры оплаты отображаются в Safari, как ожидалось.

Ответ 1

По-видимому, Apple Pay в Интернете с использованием эстафетной передачи обслуживания с iPad не представляется возможным. Единственными совместимыми устройствами являются:

Модель Mac, представленная в 2012 году или позже с поддержкой Apple Pay iPhone или Apple Watch

Это происходит непосредственно от Apple. Довольно подробную информацию можно найти на этой странице.

Ответ 2

Отредактируйте Леонардо: поддерживаются только iPhone и iWatches для использования ApplePay с эстафетной передачей.


Поиск источника метода Stripe checkAvailability также может помочь устранить проблему.

Stripe.applePay.checkAvailability = function (callback) {
  if (location.protocol !== 'https:') {
    return callback(false);
  }

  var canMakePayments = window.ApplePaySession && ApplePaySession.canMakePayments()

  if (/^pk_test_/.test(Stripe.key || Stripe.publishableKey)) {
    callback(canMakePayments)
  } else if (canMakePayments) {
    var merchantId = "merchant." + window.location.hostname + ".stripe"
    ApplePaySession.canMakePaymentsWithActiveCard(merchantId).then(callback)
  } else {
    callback(false)
  }
}

Учитывая, что вы говорили, что он работает с вашим iPad, я предполагаю, что ваш домен уже использует ssl и правильный набор cypher.

Поскольку вы тестируете, canMakePaymentsWithActiveCard не нужно даже вызывать, так как ваш полосатый ключ должен быть тестовым, и если вы посмотрите на canMakePayments , вы можете видеть, что они четко оговаривают, что:

Он не проверяет, есть ли у пользователя какие-либо подготовленные карты в Кошельке.

Чтобы убедиться, что ваше устройство действительно поддерживает его, вы должны выполнить его непосредственно с консоли.

window.ApplePaySession.canMakePayments()

И убедитесь, что это возвращает true, если это означает, что проблема принадлежит конфигурации Stripe, а не Apple Pay.

Другое дело, что я вижу, что причиной этой проблемы может быть версия ОС вашего Mac. Ваш iPad довольно новый и, следовательно, будет иметь самую последнюю версию, но, купив MacBook в 2015 году, не обязательно означает, что вы сделали обновление до Sierra (macOS 10.12), которое требуется для использования ApplePay.

Я уверен, что вы, наверное, уже пробовали все это, я просто убедился, что мы ничего не забыли.

Так как требуется HandOff, убедитесь, что у вас также есть все эти требования.