Как протестировать 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 и настройках Apple Pay нет Опция "разрешить платежи на Mac" в любом месте
  • в моем приложении настроек macOS нет опции кошелька и платежей
  • нет упоминания о Apple Pay в настройках macOS Safari, вкладка конфиденциальности
  • Handoff включен на Mac

возможно ли включить тестовые платежи с моим пользователем песочницы на macOS с помощью handoff, и если да, то какие шаги мне не хватает?

обновление

  • мой macOS Сьерра версия 10.12.4 (16E195)
  • под управлением window.ApplePaySession.canMakePayments() в консоли возвращает false

обновление 2

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

кроме того, Универсальный буфер обмена работает в обоих направлениях.

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

2 ответов


по-видимому, Apple Pay в интернете с помощью handoff невозможно с iPads. Единственными совместимыми устройствами являются:

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

Это происходит непосредственно от Apple. Довольно явные детали можно найти на на этой странице.


Edit from Leonardo: только iPhones и iWatches поддерживаются для использования ApplePay с handoff.


глядя на источник полосы 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 и правильный набор шифров.

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

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

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

window.ApplePaySession.canMakePayments()

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

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

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

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