- Кошелек в Яндекс.Деньгах теперь можно пополнить через Apple Pay
- Карта Яндекс.Денег в Apple Pay
- Подключаем оплату через Apple Pay на сайте
- Создание платежной сессии
- Верификация платежной сессии
- Проведение платежа
- Пропуск в партер – как запускались Apple Pay и Samsung Pay в Яндекс.Деньгах
- Зачем все это
- Подружить всех со всеми
- Красный, желтый, зеленый
- Предполетная подготовка
- (Не)лазейка для мошенников
Кошелек в Яндекс.Деньгах теперь можно пополнить через Apple Pay
У пользователей Яндекс.Денег появилась возможность пополнить электронный кошелек через Apple Pay — инструмент для интернет- и мобильных платежей. Услуга доступна в приложении Яндекс.Денег для iOS на смартфонах iPhone 6 и новее, а также на планшетах iPad Pro, Air 2, mini 3 и более новых моделях.
Пополнить кошелек новым способом просто. Для этого нужно выбрать в приложении Яндекс.Денег пополнение через Apple Pay, указать сумму, карту для списания средств и подтвердить перевод прикосновением пальца к Touch ID. До конца года пополнять счет таким образом можно без комиссии, в дальнейшем она составит 1%. За раз владельцы кошельков могут перевести до 15 000 рублей. При первом пополнении через Apple Pay на сумму от 100 рублей пользователь получит подарок от Яндекс.Денег — 50 рублей на кошелек.
Пользователи Яндекс.Денег могут также оплачивать через Apple Pay покупки в приложениях, на сайтах и в магазинах — эта возможность появилась неделю назад. Чтобы платить таким образом, нужно добавить в Apple Wallet пластиковую или виртуальную карту Яндекс.Денег. Сделать это можно через приложение Apple Wallet или Яндекс.Деньги для iOS. При платеже с карты Яндекс.Денег средства будут списываться из электронного кошелька — у них общий баланс. Виртуальная карта выпускается за несколько секунд. Пластиковую можно получить в офисе компании или по почте. Всего под брендом Яндекс.Денег выпущено более 500 тыс. пластиковых и около 11 млн виртуальных карт MasterCard.
Платежи через Apple Pay полностью безопасны. Данные карты не хранятся ни на устройстве пользователя, ни на серверах Apple: вместо этого учетной записи устройства присваивается уникальный номер, который шифруется и хранится в специальном чипе этого устройства под названием «Безопасный элемент».
В ближайшее время Яндекс.Деньги станут подключать прием платежей через Apple Pay компаниям, которые используют Яндекс.Кассу — универсальное платежное решение для бизнеса.
Яндекс.Деньги — самый популярный сервис электронных платежей в рунете, по данным «TNS Россия» на 2016 год. Он позволяет платить и принимать оплату электронными деньгами, наличными и с банковских карт.
Незарегистрированные пользователи могут платить по счетам и квитанциям на сайте Яндекс.Денег. У владельцев электронных кошельков есть дополнительные возможности — выпустить к счету банковскую карту, настроить напоминания и автоплатежи. К осени 2016 года в Яндекс.Деньгах было зарегистрировано около 28 млн кошельков, ежедневно открывается около 15 тыс. новых.
Аудитория мобильного приложения Яндекс.Денег — более 4 млн пользователей. Среди них 35% — это владельцы устройств на iOS. Им доступны денежные переводы, в том числе через iMessage, оплата счетов за ЖКУ, интернет, телефон, погашение кредитов, платежи из избранного и многое другое. Пользователи могут также установить приложение Яндекс.Денег на часы Apple Watch. Оно позволяет платить онлайн, не доставая смартфона: достаточно выбрать на экране часов нужную услугу, добавленную в «Избранное» электронного кошелька, и подтвердить операцию. За год доля платежей с мобильных устройств удвоилась и сейчас составляет 20% от общего оборота Яндекс.Денег.
За новостями Яндекс.Денег можно следить также в нашем блоге, Твиттере и Фейсбуке.
Источник
Карта Яндекс.Денег в Apple Pay
Нет наличных, забыли пластиковую карточку в другой куртке, с собой только iPhone, а нужно заплатить за мобильную связь, срочно купить билеты на поезд, забежать за продуктами и не забыть корм коту. Не проблема, если добавили карту Яндекс.Денег в Apple Pay.
С помощью Apple Pay удобно платить за услуги и покупки: продукты, одежду и любые товары, посиделки в кафе и вызов такси. С Apple Pay дружат все карты Яндекс.Денег. И пластиковой , и виртуальной картой можно рассчитываться в интернете или в обычных магазинах.
Как добавить карту Яндекс.Денег в Apple Pay
Чтобы добавить в Apple Pay пластиковую карту Яндекс.Денег , скачайте и откройте приложение Wallet, нажмите на плюс, наведите камеру на карту, чтобы она поместилась в рамку, или введите данные карты вручную. Для добавления «виртуалки» — авторизуйтесь в приложении Яндекс.Денег и во вкладке «Карты» выберите виртуальную карту. Нажмите «Добавить в Wallet» и следуйте подсказкам.
Как без комиссии пополнить кошелёк через Apple Pay
У кошелька и карты Яндекс.Денег общий баланс. Через Apple Pay кошелёк можно пополнить без комиссии — подойдёт любой Mastercard из Wallet, кроме карты Яндекс.Денег. Зайдите в приложение Яндекс.Денег, нажмите на плюс рядом с балансом и в открывшейся вкладке выберите опцию «Apple Pay (для Mastercard)». Введите сумму, выберите, с какой карты перевести деньги, и подтвердите перевод. Комиссии не будет.
Как платить смартфоном через Apple Pay в обычных магазинах
Используете Face ID — дважды нажмите боковую кнопу iPhone, посмотрите на экран и поднесите телефон к терминалу бесконтактной оплаты на кассе или турникете метро (повсюду, где есть значок бесконтактной оплаты). Если платите с Touch ID, поднесите iPhone к терминалу, удерживая палец на датчике.
Как платить в интернете с iPhone
Платить через Apple Pay можно во многих приложениях и на разных сайтах, если откроете их в Safari. Для начала убедитесь, что сайт или приложение, где вы собрались купить новые кроссовки или заказать пиццу, поддерживает Apple Pay, а карта Яндекс.Денег добавлена в Wallet. Оформите заказ и выберите оплату через Apple Pay. Подтвердите оплату: используйте Face ID или Touch ID.
Кэшбэк в iPhone
И самое приятное — когда платите с помощью Apple Pay, кэшбэк приходит так же, как и с «пластиком»: 5% баллами вернется за покупки в категории месяца, 5% за каждый пятый платёж в других категориях и 1% за покупки в интернете.
Категория месяца в сентябре — книги, кино, театр, выставки, онлайн-кинотеатры и мероприятия на Timepad.ru. МСС 5111, 5192, 5942, 5994, 2741, 7841, 7991, 5971, 7922, 7832.
Добавьте карту Яндекс.Денег в Apple Wallet, платите смартфоном, деньги будут списываться с баланса кошелька, а за покупки вы получите мгновенный кэшбэк .
Источник
Подключаем оплату через Apple Pay на сайте
Сейчас, в том числе и у нас на сайте, и в приложениях ivi, есть явная тенденция роста аудитории на мобильных устройствах. Также растет и доля покупок, совершаемых в интернете с мобильных устройств. В отличие от десктопа, помимо традиционных вариантов оплаты, доступны системы мобильных платежей, например Apple Pay, Android Pay, Samsung Pay. Эти системы можно использовать не только для оплаты в терминалах, принимающих банковские карты, но и для оплаты в приложениях и на веб-сайтах.
Внедрение мобильных платежей мы начали с веб-версии ivi и выбрали мобильный сайт и систему Apple Pay.
Apple Pay — система мобильных платежей от Apple, позволяющая мобильным устройствам проводить платежи в магазинах и в интернете. Пользователь привязывает карту к телефону, и далее при оплате требуется только подтверждение платежа отпечатком пальца или цифровым кодом.
В этой статье я расскажу об использовании библиотеки Apple Pay JS.
Библиотека предназначена для использования Apple Pay на сайтах. Apple Pay JS API поддерживается на:
- iOS начиная от 10 версии в браузере Safari и моделях iPhone, поддерживающих бесконтактные платежи (SE и старше 6);
- macOS от версии 10.12 в браузере Safari на компьютерах с Touch ID или при подключенном iPhone или Apple Watch для подтверждения платежей.
Для того чтобы принимать платежи через Apple Pay на сайте, вам потребуется:
- Девелоперский аккаунт Apple;
- HTTPS на странице, использующей Apple Pay;
- Выбрать платежный шлюз, с которым вы будете работать. Мы пользуемся услугами Payture.
Далее нужно зарегистрировать Merchant ID, создать сертификаты Merchant Identity Certificate и Payment Processing Certificate и верифицировать домены, на которых будет использоваться Apple Pay. Описание процесса есть в инструкции от Payture.
- Merchant ID — идентификатор продавца, представляющий его в Apple Pay;
- Payment Processing Certificate — сертификат, используемый для передачи платежных данных на стороне платежного шлюза. Сервера Apple Pay используют публичный ключ этого сертификата для шифрования платежных данных. Приватный ключ используется для расшифровывания данных при проведении платежа;
- Merchant Identity Certificate — TLS сертификат, используемый для подтверждения данных продавца и авторизации платежных сессий через сервера Apple. Платежная сессия создается при инициализации процесса оплаты. Сертификат используется только на стороне сайта.
Стоит обратить внимание на то, что при верификации нужно указать полное доменное имя, т.е. маску домена указать не получится.
После всей подготовительной работы можно приступить к интеграции Apple Pay на сайт. Процесс интеграции состоит из 3 основных частей:
- Создание платежной сессии, показ диалога платежа и обработка событий платежной сессии. Тут используется Apple Pay JS API;
- Верификация платежной сессии. Требуется для того, чтобы система Apple Pay могла убедиться, что запрос идет от зарегистрированного продавца. Реализуется на бекенде;
- Проведение платежа через платежный шлюз и завершение платежной сессии.
Создание платежной сессии
Перед показом кнопки оплаты через Apple Pay нужно проверить доступен ли Apple Pay на устройстве. Реализуется это так:
Далее с помощью Apple Pay JS API можно проверить есть ли у пользователя активные карты, привязанные к Apple Pay. Предоставляется 2 метода canMakePayments и canMakePaymentsWithActiveCard . Первый проверяет только факт поддержки Apple Pay, второй помимо этого позволяет узнать есть ли по крайней мере 1 карта, привязанная к Apple Pay.
У нас, например, эти проверки используются для того, чтобы решить показать кнопку оплаты через Apple Pay над остальными способами оплаты или под ними. В случае если добавленных карт нет, выводится кнопка Set Up Apple Pay, по клику открываются настройки телефона с разделом Wallet. В итоге пользователь уходит с сайта, а процесс оплаты прерывать не стоит, поэтому кнопка располагается под основными типами оплаты и даже не видна без скролла экрана.
Страницы оплаты для настроенного и ненастроенного Apple Pay:
Как только кнопка отображена на странице, можно создать платежную сессию для того чтобы отобразить диалог оплаты. Сессия может быть создана только по явному пользовательскому действию. По клику на кнопку нужно выполнить следующий код:
В примере приведен минимальный набор свойств у объекта ApplePayPaymentRequest. Для отображения более подробной информации о покупке нужно использовать другие свойства этого объекта.
Для обработки событий платежной сессии нужно реализовать как минимум следующие методы:
- onvalidatemerchant срабатывает при открытии платежной формы Apple Pay. В обработчике этого события требуется верифицировать платежную сессию. Процесс верификации описан далее;
- onpaymentauthorized срабатывает когда пользователь подтверждает платеж на платежной форме Apple Pay с помощью Touch ID, Face ID или кода. Здесь доступен платежный токен, который нужно передать в платежный шлюз для проведения платежа;
После создания объекта ApplePaySession нужно вызвать метод begin для отображения диалога оплаты:
В результате пользователь увидит следующее:
При показе формы срабатывает событие onvalidatemerchant . Для того чтобы продолжить платеж реализуем следующий этап.
Верификация платежной сессии
В параметре события onvalidatemerchant приходит поле validationURL . На этот адрес с бекенда нужно отправить данные, подписанные сертификатом Merchant Identity Certificate.
Метод performValidation возвращает промис от запроса на валидацию. Обработчик этого запроса находится на нашей стороне, реализация такая: на URL из параметра события onvalidatemerchant отправляется post запрос.
В теле запроса содержится json:
Параметры MERCHANT_IDENTIFIER и DISPLAY_NAME берутся из девелоперского аккаунта (их настроили в самом начале), а HOST — это домен, с которого делается оплата.
Запрос должен быть подписан сертификатом Merchant Identity Certificate. В ответе придет json, его и нужно вернуть. После получения этого ответа, вызываем у платежной сессии метод completeMerchantValidation .
Процесс верификации сессии пройден, теперь пользователю требуется подтвердить платеж пальцем или кодом. После этого срабатывает событие onpaymentauthorized . Переходим к этапу проведения платежа.
Проведение платежа
В параметре события onpaymentauthorized содержится объект с платежным токеном, который нужно передать в платежный шлюз. Вся информация, содержащаяся в токене, описана в документации.
Как только платеж проведен, завершаем оплату на стороне клиента.
в success нужно передать один из 2 статусов window.ApplePaySession.STATUS_SUCCESS или window.ApplePaySession.STATUS_FAILURE .
На этом процесс оплаты через Apple Pay заканчивается. Более подробно про Apple Pay JS можно почитать в официальной документации.
Источник
Пропуск в партер – как запускались Apple Pay и Samsung Pay в Яндекс.Деньгах
На волне всеобщего увлечения бесконтактной оплатой хочу поделиться подкапотным опытом Яндекс.Денег по запуску Apple Pay и Samsung Pay. Нашей команде пришлось координировать усилия с MasterCard и производителями смартфонов. Подружить эту компанию и не сойти с ума – задача сама по себе нетривиальная. Вдобавок мы были в первой волне тех, кто пришел на «праздник», и многие решения пришлось обкатывать на ходу.
Под катом подробности о подключении бесконтактных платежей в Яндекс.Деньгах, тестировании и особенностях работы систем безопасности с новым типом платежей.
В этом посте речь пойдет о платежных системах Apple Pay и Samsung Pay, которые основаны на схожих принципах и отличаются в деталях. Для простоты я буду называть их просто *Pay везде, где детали не принципиальны.
Зачем все это
Оплатить товар с телефона можно давно – достаточно установить мобильное приложение вашего банка, в котором должна быть опция бесконтактной оплаты (приложение Яндекс.Денег тоже подойдет, кстати). Данные о карте хранятся в защищенном виде на устройстве пользователя и доступны по технологии HCE – это программный аналог чипа банковской карты.
Есть и отдельные программы вроде Кошелька, которые предлагают возможности беспроводной оплаты для банков-партнеров и, в качестве бонуса, хранение скидочных карт.
Вот почему раньше для бесконтактной оплаты требовались дополнительные «прослойки»:
Владельцы iPhone не могли платить бесконтактно, потому что интерфейс NFC в смартфонах Apple нельзя напрямую использовать для оплаты в сторонних приложениях. К тому же NFC появился только в iPhone 6 и SE.
Apple Pay и Samsung Pay нужны в первую очередь для того, чтобы оплата со смартфона через NFC стала стандартизированной и безопасной.
Изначально платежные карты выпускались только с магнитной полосой, на которой был записан номер карты. Естественно, номер легко копировался, поэтому за дело взялась организация EMVCo, разработавшая более защищенный чип EMV. Эта мера позволила существенно сократить число мошеннических операций, но целиком проблему не решила. Кроме того, процесс оплаты был несовершенен и поэтому продолжались работы над дальнейшими улучшениями.
Далее появились бесконтактные платежи на пластике (MasterCard PayPass, VISA PayWave), а потом платежные функции карты стали частично переходить на мобильные устройства.
Путь был тернист, и среди прочих платежные системы пробовали следующие варианты:
SIM-карта со встроенным чипом Secure Element, выпускаемая совместно сотовым оператором и банком-эмитентом;
наклейка на телефон со встроенным беспроводным модулем и Secure Element;
В конечном счете MasterCard «перетасовал карты» и закрепил за производителями мобильных устройств функции хранения карточных данных и проведения оплаты. Так появился MasterCard Digital Enablement Service (MDES) от MasterCard, а затем и *Pay.
Но HCE все равно полностью не исчезла, так как позволяет банкам использовать собственные мобильные приложения для бесконтактной оплаты. То есть банк может самостоятельно добавить в свое приложение функцию оплаты с карты. Плюс к тому, в приложении можно реализовать какие-нибудь фирменные удобства вроде оплаты ЖКХ.
Кстати, в мобильных Яндекс.Деньгах тоже осталась опция бесконтактной оплаты через HCE — для всех тех, кто по разным причинам не может воспользоваться *Pay.
Подружить всех со всеми
Надеюсь, теперь все причинно-следственные связи восстановлены, поэтому вернемся к проекту бесконтактной оплаты Яндекс.Денег.
Если все равно что-то осталось туманным – обязательно спрашивайте в комментариях.
Все дальнейшие сценарии буду иллюстрировать на примере карт Яндекс.Денег, по которым набралось больше всего информации.
Чтобы пользователь мог непринужденно оплатить товар с телефона, нужно тесное сотрудничество четырех сторон:
сервиса бесконтактных платежей от производителя смартфона (Apple Pay и Samsung Pay);
платежной системы (MasterCard);
эмитента карточки (Яндекс.Деньги);
Таким образом, команде Яндекс.Денег нужно было договориться с Apple, Samsung, Mastercard и реализовать поддержку обновленных платежных протоколов на своей стороне. Еще потребовалось добавить прием платежей через Apple Pay и Samsung Pay в Яндекс.Кассу – платёжное решение для бизнеса. Но это уже другая история.
На иллюстрации не хватает банка-эквайера – убрал его для простоты.
Когда пользователь добавляет карту в кошелек, Apple Wallet формирует криптограмму с зашифрованными данными карты и цифровой подписью, а затем отправляет ее в MasterCard. Там криптограмма расшифровывается и происходит токенизация. Токенизация – это формирование номера DPAN, который представляет собой синоним оригинальной карты, уникальный для каждого физического устройства.
Digital Primary Account Number (DPAN) – это специальный номер-токен, который платежная система выдает конкретному устройству для использования одной из карт пользователя. Такой номер уникален для каждого устройства и поэтому генерируется каждый раз при добавлении одной и той же карты в кошелек очередного устройства.
Токен нужен для того, чтобы не хранить на мобильном устройстве реальных платежных данных.
Но DPAN не будет сгенерирован, пока MasterCard не проверит поддержку *Pay на стороне эмитента, то есть Яндекс.Денег. Для этого необходимо:
Дождаться проверки Apple или Samsung возможности использовать устройство в качестве оплаты (не украден ли телефон, есть ли права Root и т.д.).
Подключиться к MasterCard Digital Enablement Service (MDES). Подробности о подобных приложениях едва ли не полностью подпадают под NDA, поэтому желающим придется запрашивать документацию напрямую у MasterCard.
Реализовать поддержку специфических запросов *Pay.
Но пользователь может захотеть добавить карту не вручную, а из приложения Яндекс.Денег. Такая возможность есть, но используется немного другой механизм.
Красный, желтый, зеленый
Когда пользователь добавляет карточку в кошелек телефона, запускается один из трех сценариев дальнейшего развития событий, в зависимости от степени риска:
Зеленый. Используется когда запрос на добавление карты приходит от мобильного приложения эмитента (Яндекс.Деньги) и в нем есть специальный ключ, подтверждающий аутентификацию пользователя в банковском приложении. Дополнительных проверок не требуется.
Желтый. Обычно используется при добавлении карты вручную или с помощью камеры телефона (OCR). Кошелек спросит CVV-код карты и запросит дополнительную аутентификацию.
Если у вас еще нет пластиковой карты Яндекс.Денег, то для пробы пера можно выпустить виртуальную прямо в приложении.
Но мы живем не в идеальном сферическом мире, поэтому часто будет использоваться именно желтый путь. Чтобы он тоже проходил гладко и на этапе распознавания реквизитов карты камерой не было проблем, мы отправили в Apple более 200 фото тестовых карточек. Без этого обучения алгоритм распознавания периодически ошибался и пытался добавить в кошелек карту с неверными данными.
Предполетная подготовка
Когда необходимый софт на бэкенде был готов, а бета-версия Яндекс.Денег обучена премудростям Apple Pay (для Samsung Pay опция токенизации через наше мобильное приложение пока недоступна), настала утомительная пора тестирования.
Кстати, для подключения к «банкету» недостаточно все реализовать и сообщить в MasterCard о готовности – платежная система и производители телефонов обязательно проверят вас лично. Например, по поводу Apple Pay к нам приехал товарищ из компании UL с набором всевозможных гаджетов Apple. Одних только iPhone у него было 6 штук — 3 поколения в 2 версиях (простая и Plus). С их помощью аудитор проверил множество сценариев оплаты, включая возврат средств.
Обновленный процессинг Яндекс.Денег работал в изолированном тестовом сегменте, поэтому для проверки использовался «белый список» карт – для них MasterCard просто включил платежи *Pay. Но вот с тестовой средой от Apple были некоторые сложности.
Например, отдельной платежной инфраструктуры для обкатки не было, поэтому тестировщикам Яндекс.Денег пришлось перевести свои смартфоны и Apple ID на регион «США» и подбирать ответы на некоторые запросы самостоятельно.
Но дьявол кроется в деталях, а ошибки – на последней миле. Оказалось, что далеко не все банки следят за обновлением прошивок своих терминалов, а кассирам в большинстве своем чужды современные технологии.
Моделей платежных терминалов и прошивок к ним довольно много, и у самых древних из них мозги сходили с ума от *Pay. Пришлось понимать и прощать, попутно сообщая в поддержку соответствующих банков о “небольших сложностях с POS-терминалом”.
Когда все уже вроде бы работало, по некоторым транзакциям в мобильный кошелёк стали приходить суммы с прочерком. Это явно означало проблемы вне систем Яндекс.Денег. Конечно, на саму оплату такие отчеты не влияли, но когнитивный диссонанс присутствовал.
(Не)лазейка для мошенников
Токенизация карт со стороны Яндекс.Денег, как и других банков, сопровождается проверкой таких запросов на мошеннические паттерны. Для этого в Яндекс.Деньгах существует отдельный механизм со своей сложной логикой и полномочиями блокировать крайне подозрительные операции – система антифрода.
Так как система работает на основе определенных правил, обнаружилась потенциальная проблема с безопасностью при токенизации чужой карты на устройство. Для этого нужны номер карты, срок действия и CVC2. Да, эмитент наверняка запросит дополнительную валидацию, но даже в случае с SMS-паролем фишинг и социальная инженерия работают. При сумме оплаты до 1000 рублей терминал даже пин-код не спросит, а SMS-оповещения включены до сих пор не у всех владельцев карт.
С такими угрозами можно бороться на уровне процессинга. Каждое действие пользователя со своим счетом или картой рассматривается в режиме онлайн фрод-машиной: если сработает хотя бы одно блокирующее правило, то транзакция будет отклонена.
Для каждого пользователя Яндекс.Денег формируется индивидуальный поведенческий профиль: что он любит и не любит, как и когда обычно платит, типичные периоды активности и множество других признаков. На основе этой информации и с помощью машинного обучения строится прогноз будущих значений, то есть наиболее вероятных действий человека. Если антифрод замечает отклонения фактических показателей от их прогноза, то может запросить дополнительную аутентификацию или отклонить транзакцию.
Про машинное обучение в системах безопасности можно много интересного рассказать в связи с его давним внедрением в Яндекс.Деньгах, но это уже тема отдельной статьи.
Если вы по работе сталкивались с другими нюансами подключения к *Pay – поделитесь в комментариях, многим будет любопытно.
Источник