Как вы тестируете 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, убедитесь, что у вас также есть все эти требования.