Как протестировать 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.
Я уверен, что вы, вероятно, уже пробовали все эти вещи, я просто убедившись, что мы ничего не забыли.
поскольку передача, похоже, требуется, убедитесь, что у вас также есть все данные требования проверено.