Как платить телефоном вместо карты на Андроид: привязать, подключить

Как платить телефоном вместо карты на Андроид: привязать, подключить NFC

Платежные системы на основе телефона и nfc

Сейчас существует несколько основных платежных систем, которые работают на основе мобильного телефона и модуля NFC, это Apple Pay, Samsung Pay и Google Pay.

Все эти системы работают по одному и тому же принципу. Сначала вы регистрируетесь в платежной системе и указываете данные о себе. Дальше к аккаунту платежной системы нужно привязать карту с возможностью оплаты в Интернете, именно эта карта в будущем и будет использоваться для оплаты товаров и услуг.

Впрочем, каждая из этих платежных систем имеет собственные особенности. Например, Samsung Pay поддерживает эмуляцию магнитной полосы платежной карты, что позволяет использовать ее практически на любом терминале, а система Apple Pay может использовать идентификацию пользователя по лицу (Face ID).

Выбор между этими системами зависит в основном от модели вашего телефона. На телефонах от Apple можно использовать только Apple Pay, на телефонах от компании Samsung можно использовать Samsung Pay или Google Pay, для всех остальных Android телефонов доступен только Google Pay. Далее в статье мы будет рассматривать именно Google Pay, так как он подходит большинству пользователей.

Что такое nfc

Поддержка NFC является важным параметром современного Андроид телефона. Главная опция этой технологии заключается в осуществлении бесконтактных платежей. Банковская карта привязывается к телефону, после чего можно совершать платежи на кассах.

Если дословно перевести расшифровку NFC, то получается «ближняя контактная связь». Отсюда можно понять главную особенности системы – передача информации осуществляется на довольно близком расстоянии – до 10 см.

Функционирует NFC на основе индукции магнитного поля. Таким образом реализуется на частоте 13.56 МГц между двумя устройствами высокочастотный обмен данными.

Технология существует из-за потребности в безопасности. Выполнить «взлом» контакта на таком небольшом расстоянии затруднительно, что ее отличает от беспроводного соединения. Основное направление работы NFC – это проведение бесконтактной оплаты через поднесение телефона к терминалу.

Читайте Как проверить Android на шпионские программы

Существуют разные способы использования данной технологии:

  • Безналичная оплата. Наиболее распространенный способ использования, можно оперативно предоставить личные данные, оплатить проезд и т.д.
  • Передача настроек, контактов и медиа файлов между телефонами.
  • В некоторых ТВ Sony и Samsung есть опция One Touch Mirroring, которая на телевизионный экран выводит видеоролики из телефона.
  • Считывание данных. С визитных карточек можно оперативно заносить данные в телефон.
  • Контроль за доступом к объектам и сервисам, в которых примеряется устройства с чипом NFC.

Преимущества NFC:

  • Безопасность. Благодаря небольшому радиусу действия процесс взлома существенно усложняется. Несмотря на это, технология поддерживает и иные средства защиты.
  • Моментальное соединение. При помощи NFC устройства между собой соединяются без лишних манипуляций. Здесь не требуется вводить настройки и прочее. Достаточно два устройства с чипами поднести друг к другу.
  • Удобство в применении. Можно добавить несколько карт в память телефона. Технология NFC поддерживает не только карты банков, но и скидочные и транспортные карты.

Apple pay

Платежная система от Apple для расчета с помощью мобильных устройств на базе операционной системы iOS. Чтобы ее настроить:

  1. Откройте приложение «Wallet».Приложение Wallet
  2. Нажмите на значок « ».Добавление карты в Apple Pay
  3. Отсканируйте карту, используя камеру или введите данные вручную.Сканирование кредитки в Apple Pay
  4. Понадобится верификация банком через СМС, сообщение на электронную почту или звонок оператору.
  5. В списке появится новая кредитка.Новая платежная карта в Apple Pay

Важно! При наличии кредитки для покупок в iTunes, она будет предложена по умолчанию.

В программу добавляют дебетовые, кредитные и дисконтные карты банков-партнеров.

Google pay

Приложение для тех, кто ищет универсальный способ как настроить оплату через NFC на Андроид:

  1. Откройте «Play Market».Запуск Play Маркет
  2. В строке поиска введите «Google Pay».Поисковая строка в Google Play
  3. Выберите первое приложение в выдаче.Google Pay в окне выдачи
  4. Нажмите «Установить».Установка Гугл Пэй
  5. Откройте программу, перейдите в «Оплата» и тапните по «Способ оплаты».Вкладка оплата в Google Pay
  6. Введите данные карты (номер, время действия, CVC-код) и личные данные.
  7. Пройдите верификацию карты.Верификация карты в Гугл Пэй
  8. Она появится в доступных для выплат.Новая карта оплаты в Google Pay

Безопасность использования nfc

О сохранности средств на счету во время бесконтактной оплаты смартфоном переживать стоит меньше всего. Пострадать от мошеннических действий могут все, но при работе с картой риски возрастают в разы. Тут приходится засвечивать реквизиты, вводить пин-код.

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

Если телефон украдут, то и тут возникнет проблема с доступом. Чтобы разблокировать гаджет, придется идентифицировать личность. Для надежности рекомендуют ставить отпечаток пальца. Идентичных папиллярных рисунков нет, а значит завладеть счетом становится нереально. За все время никто не смог взломать систему и завладеть данными пользователей.

Единственное омрачает, что периодически наблюдаются технические сбои в банке или проблемы с терминалом, в следствие чего происходит двойное снятие денег. Подобное имеет место, если долго удерживать смартфон возле считывающего устройства. В таких случаях средства возвращаются потом на счет, но для этого придется доказать свою правоту.

Справка. Касательно карт с НФС, то тут дела обстоят сложнее. С таких носителей злоумышленники ухитряются снимать средства. Мошенники следят за жертвой и смотрят, где размещается платежный инструмент. После чего подходят вплотную и располагают самодельный ридер на расстоянии 10 см, снимают деньги. Защитить сбережения можно, если обернуть карту фольгой. Это станет преградой для денежных махинаций.

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

В каких смартфонах есть nfc?

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

Впервые NFC-антенны появились в iPhone 6. Одновременно с презентацией устройства была представлена и бесконтактная платежная система Apple Pay. Поддержка технологии есть во всех последующих смартфонах американского бренда, включая доступные SE. В большинстве моделей она предназначается исключительно для соединения с банковскими терминалами.

Разумный выбор — iPhone 11 Pro. Смартфон удобно ложится в руку и помещается в кармане. В любой момент вы сможете использовать его в качестве электронного кошелька. OLED-экран подстраивается под окружающее освещение, меняя яркость и цветовую температуру, поэтому изображение всегда остается четким и приятным для глаз.

Проблемы NFC:  Как установить NFC в смартфоне если его нет с помощью антенн или внешнего модуля

Если говорить об Android-устройствах, выбор будет намного шире. Модуль NFC есть во всех классах — от ультрабюджетного до флагманского.

Самый доступный смартфон с поддержкой коммуникаций ближнего поля — Vertex Impress Click. Модель совместима со всеми функциям NFC-антенны, включая обмен файлами, авторизацию и бесконтактные платежи. Она полностью соответствует требованиям разработчиков — ее мощности достаточно для запуска Google Pay и мобильных приложений банков.

Куда интереснее другой бюджетный смартфон — ZTE Blade V9. В его активе широкоформатный экран с разрешением Full HD и процессор Qualcomm Snapdragon 450, позволяющий запускать большинство современных игр с минимальными или средними настройками графики.

Устройство также радует объемом памяти — 4 ГБ оперативной и 64 ГБ физической в базовой комплектации. Двойная камера смартфона с матрицей 16 Мп умеет снимать с эффектом боке. Владельцу доступно два способа разблокировки — с помощью отпечатков пальцев и функции распознавания лиц.

В среднем классе стоит отметить смартфон Xiaomi Redmi Note 8T, который оснащен актуальными технологиями по доступной цене. Его гордость — модная квадрокамера с разрешением 48 Мп, способная делать четкие фотографии днем и ночью. Процессор Qualcomm Snapdragon 665 поддерживает стабильный FPS в играх при средних или высоких настройках графики.

Оболочка операционной системы MIUI оптимизирует энергопотребление , поэтому батарея емкостью 4 000 мА*ч обеспечивает до 2 дней автономной работы. В устройстве также есть инфракрасный порт для дистанционного управления кондиционерами, телевизорами и другой бытовой техникой.

В категории «доступных флагманов» наиболее интересен Huawei P40 lite. Смартфон собран на базе процессора Kirin 810 со встроенной нейросетью. Искусственный интеллект ускоряет запуск приложений, сглаживает анимацию при высоких нагрузках, предотвращает падение FPS и снижает температуру внутренних компонентов в играх.

В премиум-классе нельзя пройти мимо бескомпромиссного Samsung Galaxy S20 Ultra. Его счетверенная камера с перископным объективом делает снимки с десятикратным зумом без потери качества. И даже при 100-кратном зуме вы различите детали изображения: искусственный интеллект сглаживает контуры и «дорисовывает» текстуры.

Процессор Exynos 990 гарантирует исключительно плавную работу в любых сценариях — от неспешного пролистывания соцсетей до построения виртуальной реальности. Технология DeX позволяет превратить смартфон в стационарный компьютер, подключив к нему мышку, клавиатуру и монитор при помощи компактного адаптера.

Где используется?

Сегодня самая распространенная сфера применения ближней бесконтактной связи — финансовые операции. По сведениям на начало 2020 года, в России более 80% банковских POS-терминалов были совместимы с NFC. Доля оплат через мобильные приложения уже достигла четверти от всех безналичных переводов в розничной торговле и продолжает расти.

Основная причина популярности бесконтактных платежей — удобство. Рассчитываясь за покупку с помощью пластиковой карточки, вы тратите около 20–30 секунд. Беспроводная связь сокращает это время до 5–8 секунд и значительно уменьшает количество выполняемых действий. Выгодно для обеих сторон: клиенты меньше стоят в очереди, а предприятие увеличивает оборот.

Все больше смартфонов получают встроенные NFC-модули. Такие модели представлены даже в ультрабюджетном сегменте, их можно купить за 6–10 тысяч рублей. Впрочем, для оплаты покупок подходят и другие устройства: фитнес-браслеты, умные часы и даже кольца с пассивными метками.

Сфера применения технологии также расширяется. Бесконтактные платежи принимают в магазинах, кафе, кинотеатрах, центрах развлечений, на заправках и даже в государственных учреждениях, предоставляющих услуги населению. NFC также используется для оплаты проезда в общественном транспорте.

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

В последние годы NFC-приемники появились и в бытовой технике. В стиральных, сушильных и посудомоечных машинах их используют для самостоятельной диагностики, в телевизорах и музыкальных центрах — для быстрого подключения по Wi-Fi и передачи мультимедийного контента, в холодильниках, кофемашинах и кондиционерах — для дистанционного управления.

Коммуникации активного поля нашли применение и в рекламе. NFC-метка в журнале, на плакате или на лайтборде предоставляет намного больше информации по сравнению с QR-кодом. Да и камеру включать не приходится: достаточно поднести смартфон и взглянуть на экран.

Технология NFC активно используется для идентификации. Она постепенно вытесняет прежние стандарты RFID, которые применялись в бесконтактных ключах и смарт-картах. Мобильный девайс может открывать доступ в офис или квартиру, в гостиничный номер и зал ожидания аэропорта, в личную машину или общественный транспорт.

Смартфоны с активными NFC-антеннами также могут взаимодействовать друг с другом. Многие производители используют эту технологию для обмена контактными данными, передачи небольших файлов (изображений и текстов), а также для предоставления доступа к защищенным папкам и облачным хранилищам.

В будущем функционал NFC может значительно расшириться. Предполагается, что технология будет открывать двери в квартиру, активировать личные настройки на стандартизованном рабочем месте, запускать любимый плейлист в машине и передавать полную «визитную карточку» человека при знакомстве. Не правда ли, это напоминает сюжет «Черного зеркала»?

Как подключить карту к телефону с nfc

Возникает резонный вопрос: как оплачивать через nfc, как настроить оплату и подключить карту к устройству? На самом деле ничего сложного в этом нет. Владельцу карточки и телефона с поддержкой функции, нужно:

  1. В приложении, будь это Android или Samsung Pay, нажать на «Добавить карту».
  2. Ввести данные карточки – имя пользователя, номер и код. Также можно просто сфотографировать ее и дождаться проверки.
  3. Выбрать вариант идентификации личности.
  4. Ввести код подтверждения от банка.
  5. Дождаться активации.

Чтобы добавить карту в Эпл Пей нужно:

  1. Открыть Wallet. Оплата НФС (NFC) с телефона: как платить
  2. В верхней части экрана нажать на « ». Оплата НФС (NFC) с телефона: как платить
  3. Сфотографировать карту или ввести данные вручную. Оплата НФС (NFC) с телефона: как платить
  4. Принять условия пользования и получить код от банка.
  5. Ввести код и ждать активации.

Всего в Apple Pay можно добавить до 8 карточек. В Самсунг Пей до 10. В Гугл Пей более десяти.

Как пользоваться?

Прежде всего, нужно определить, поддерживает ли смартфон технологию NFC. Лучше всего углубиться в технические характеристики конкретной модели или воспользоваться инструкцией по эксплуатации, вложенной в коробку. Если дополнительной информации под рукой нет, перейдите в настройки и выберите пункт «Беспроводная связь». В нем должен быть специальный раздел, посвященный антенне NFC и связанным с ней функциям.

Впрочем, на корпусе большинства устройств с поддержкой NFC есть специальный рисунок в виде стилизованной буквы N. Он расположен над активной антенной и пассивной меткой. Чтобы установить соединение, вам нужно поднести пиктограммы друг к другу.

Стоит отметить, что передача данных начнется только в том случае, если на смартфоне включена функция NFC. В Android-устройствах ее можно активировать следующими способами:

  1. Опустить «шторку» уведомлений и быстрых команд. Нажать на соответствующую кнопку и дождаться, пока она изменит цвет.
  2. Перейти в настройки, выбрать раздел «Беспроводная связь» и передвинуть ползунок рядом с надписью NFC.
  3. Открыть меню, найти пункт «Прочее» или «Еще». Активировать функцию NFC, разрешить передачу файлов и онлайн-оплаты.
Проблемы NFC:  Не работает NFC на iPhone 6s: что делать — МирДоступа

Обратите внимание: порядок действий зависит от оболочки операционной системы, установленной на смартфоне. Если вы уверены в том, что устройство поддерживает NFC, но не можете найти соответствующий пункт в меню, воспользуйтесь официальным руководством на сайте производителя или обратитесь в техническую поддержку.

В случае с техникой Apple процедура немного сложнее. По умолчанию модуль NFC поддерживает только бесконтактные платежи. Чтобы воспользоваться этой функцией, вам нужно выполнить следующие действия:

  • запустить приложение Wallet;
  • нажать на символ « » в верхнем правом углу;
  • сфотографировать банковскую карту, ввести реквизиты, при необходимости откорректировать номер;
  • заполнить поля «Срок действия» и «CVV/CVC2»;
  • дождаться ответа от банка, выдавшего карту.

Долгое время функционал NFC в iPhone был ограничен. Ситуация изменилась после выхода операционной системы iOS 13, в которой появилось стандартное приложение «Команды». Изначально оно предназначалось для управления умным домом, но пользователи быстро нашли ему иное применение.

Чтобы разблокировать другие функции NFC в iPhone, вам потребуется:

  • запустить приложение «Команды»;
  • открыть вкладку «Автоматизации»;
  • нажать на символ « » в верхнем правом углу;
  • пролистать список и найти в нем NFC;
  • выбрать пункт «Тег NFC»;
  • включить Bluetooth-наушники или другой беспроводной гаджет, подключить к iPhone;
  • поднести устройство с меткой к задней панели смартфона чуть ниже камеры;
  • подождать 2-3 секунды;
  • после подключения открыть меню «Скрипты»;
  • выбрать пункт «Задать место воспроизведения» и указать ваш iPhone;
  • выбрать из списка подключаемое устройство;
  • снять галочку в пункте «Спрашивать при выполнении» и вы сможете пользоваться NFC для мгновенной синхронизации.

К сожалению, такую процедуру нужно будет провести с каждым устройством. Но есть и хорошая новость: вы можете выполнить ее с любым гаджетом, в том числе не поддерживающим NFC. Для этого потребуется только соответствующая метка-наклейка, которая стоит не дороже 200 рублей.

Какие модели телефонов поддерживают бесконтактную оплату

Покупки через смартфон доступны на всех устройствах с NFC. Чтобы проверить наличие чипа:

  1. Откройте верхнюю шторку, найдите и активируйте «NFC».Включение НФС в шторке смартфона
  2. Или проследуйте в «Настройки».Переход в меню настроек
  3. Выберите категорию «Сети», откройте «Общий доступ» или «Еще».Категория сети
  4. Активируйте модуль.Активация NFC

Другой вариант— проверить наличие модуля в официальных характеристиках устройства.

Обратите внимание! Если у пользователя модификация Android-смартфона для китайского рынка с “азиатской” прошивкой, то оплата по НФС будет недоступна через Google Pay. При этом, будет возможно использовать сторонние приложения для оплаты через NFC.

Кейс 1. привязываем карту клиента к бэкенду для регулярных списаний или платежей в 1 клик.

Тут важно понимать, что если ваш бэкенд не сертифицирован по PCI DSS, то номер карты и ее срок действия вы не можете хранить в своей базе данных. Поэтому, прежде чем привязать идентификатор карты к аккаунту клиента, необходимо сначала карту токенизировать.

Для этого вам необходимо осуществить через мобильное приложение первый платеж с участием клиента, и желательно с 3D-Secure, заблокировав на карте небольшую сумму, например 1 единицу валюты. 3D-secure в данном случае необходим в первую очередь, чтобы обезопасить себя, как торговую точку, от финансовых претензий (чарджбеков) по будущим рекурентным списаниям, а во вторую очередь — чтобы улучшить конверсию, так как например по картам Сбербанка в России и Приватбанка в Украине в большинстве случаев транзакция без 3D-Secure не пройдет.

Итак, чтобы получить токен карты, необходимо передать параметры

requiredRecTokenverification

(более подробно как создать мобильное приложение смотрите в статье, ссылку на которую я указал в начале, а также в коде

на github):

order.setRequiredRecToken(true)
order.setVerification(true)


Параметр

requiredRecToken

требует возвратить токен карты при успешной авторизации карты, а

verification

— что средства с карты списывать не нужно, а достаточно их заблокировать, а потом вернуть (платежный шлюз возвращает их автоматически).

В ответ платежный шлюз вернет параметры

recToken

— токен карты,

recTokenLifeTime

— срок действия токена (по сути срок действия карты) и maskedCard — маскированный номер карты, который необходимо привязать в бекенде к токену для дальнейшего отображения клиенту при выборе способа оплаты.


Теперь, имея токен карты вы можете в любой момент по требованию клиента или при наступлении срока оплаты, вызвать метод

через server-to-server API и списать необходимую сумму.

Подводные камни:

По нашей статистике у довольно значимой части картодержателей не получается оплатить через 3DSecure на мобильном устройстве по ряду причин, от него и шлюза не зависящих:

— может не приходить SMS, или пользователь переключаясь между SMS-приложением и вашим, потерял форму с вводом пароля 3D-Secure, так как она открывается в WebView или системном браузере

— полезла верстка 3D-Secure страницы банка на смартфоне или планшете (банки очень редко адаптируют такие страницы)

— веб-сервер банка отключил поддержку небезопасного протокола TSL 1.0, что делает 3D-Secure недоступным для Android версии <4.1

Лайфхак:


Мы на платежном шлюзе умеем включать/отключать налету 3D-Secure, и если все-таки у клиента не получается оплатить, мы под него подстраиваемся, и пытаемся сделать оплату без 3D-Secure пароля.

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

Кейс 2. кастомизируем верстку формы ввода номера карты.

Часто возникает необходимость разместить поля для ввода номера карты, срока действия и cvv2 в другой последовательности, чем это предусмотрено стандартным layout в SDK. Но из-за требований PCI DSS вы не можете просто взять, и заменить поле ввода номера карты на стандартный компонент EditText.

Для этих целей мы разработали flexible layout. Flexible layout наследует стили вашего мобильного приложения и позволяет располагать элементы формы в любой последовательности и в любом дизайне и при этом предотвращает случайную передачу карточных данных на сторону вашего бекэнда.

Для организации ввода карты в SDK есть два механизма:CardInputView — готовый view для использования;CardInputLayout — лишь layout wrapper для потроение view в собственном стиле разметки.

По сути CardInputView = CardInputLayout CardNumberEdit CardExpMmEdit CardExpYyEdit CardCvvEdit.Упрощенную структуру CardInputView в XML можно запиться так:

Следовательно можно абсолютно свободно кастомизировать и располагать элементы ввода на сколько хватит фантазии. Есть лишь одно правило которое нужно соблюдать — каждый из элементов ввода (CardNumberEdit,CardExpMmEdit,CardExpYyEdit,CardCvvEdit) должен быть в CardInputLayout один раз, при этом не играет роли уровень вложенности View.
Вот как это может выглядеть:
Как платить телефоном вместо карты на Андроид: привязать, подключить
Подводные камни:
Кастомизируя поля ввода стоит помнить:
— cvv2 может быть длиной как 3, так и 4 символа
— номер карты может быть от 14 до 19 символов
— можно добиться максимально точной кастомизации к вашему дизайну, сделав форк SDK и внеся изменения уже в своей реализации layout (это не запрещено делать, если вы не начинаете пропускать реквизиты карты через свой бэкенд). Но сделав форк вы теряете поддержку обновлений SDK со стороны шлюза и интеграцию новых фич
Лайфхак:
Часто можно встретить на форме ввода реквизитов карты инпуты для ввода имени и фамилии картодержателя и его ZIP кода. Для платежей по СНГ нет практической необходимости это делать в 99% случаев — только некоторые банки США, Канады и Великобритании поддерживают эту технологию, которая называется Address Verification System, при этом чтобы проверка сработала, ее должны поддерживать как банк-эквайер, так и банк-эмитент
Как платить телефоном вместо карты на Андроид: привязать, подключить

Проблемы NFC:  Как сканировать документы смартфоном или планшетом

Кейс 3. подключаем возможность сканирования карты через камеру и nfc

Функция оптического сканирования карты реализована для Android в библиотеке

, для iOS в библиотеке

с использованием


NFC сканирование реализовано при помощи библиотек

и доступно только для Android. Хотя Apple и

сторонним разработчикам возможность читать RFID метки, но чтение EMV тегов с банковских карт по прежнему остается недоступным.

Пример демо-приложения для использования NFC
package com.cloudipsp.nfcexample;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Patterns;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.cloudipsp.android.Card;
import com.cloudipsp.android.CardInputView;
import com.cloudipsp.android.Cloudipsp;
import com.cloudipsp.android.CloudipspWebView;
import com.cloudipsp.android.Currency;
import com.cloudipsp.android.Order;
import com.cloudipsp.android.Receipt;
import com.cloudipsp.nfc.NfcCardBridge;
public class MainActivity extends Activity implements View.OnClickListener { private static final int MERCHANT_ID = 1396424; private EditText editAmount; private Spinner spinnerCcy; private EditText editEmail; private EditText editDescription; private CardInputView cardInput; private CloudipspWebView webView; private Cloudipsp cloudipsp; private NfcCardBridge nfcCardBridge; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); nfcCardBridge = new NfcCardBridge(this); findViewById(R.id.btn_amount).setOnClickListener(this); editAmount = (EditText) findViewById(R.id.edit_amount); spinnerCcy = (Spinner) findViewById(R.id.spinner_ccy); editEmail = (EditText) findViewById(R.id.edit_email); editDescription = (EditText) findViewById(R.id.edit_description); cardInput = (CardInputView) findViewById(R.id.card_input); cardInput.setHelpedNeeded(true); findViewById(R.id.btn_pay).setOnClickListener(this); webView = (CloudipspWebView) findViewById(R.id.web_view); cloudipsp = new Cloudipsp(MERCHANT_ID, webView); spinnerCcy.setAdapter(new ArrayAdapter<Currency>(this, android.R.layout.simple_spinner_item, Currency.values())); if (savedInstanceState == null) { processIntent(getIntent()); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_amount: fillTest(); break; case R.id.btn_pay: processPay(); break; } } private void fillTest() { editAmount.setText("1"); editEmail.setText("test@test.com"); editDescription.setText("test payment"); } private void processPay() { editAmount.setError(null); editEmail.setError(null); editDescription.setError(null); final int amount; try { amount = Integer.valueOf(editAmount.getText().toString()); } catch (Exception e) { editAmount.setError(getString(R.string.e_invalid_amount)); return; } final String email = editEmail.getText().toString(); final String description = editDescription.getText().toString(); if (TextUtils.isEmpty(email) || !Patterns.EMAIL_ADDRESS.matcher(email).matches()) { editEmail.setError(getString(R.string.e_invalid_email)); } else if (TextUtils.isEmpty(description)) { editDescription.setError(getString(R.string.e_invalid_description)); } else { final Currency currency = (Currency) spinnerCcy.getSelectedItem(); final Order order = new Order(amount, currency, "vb_" System.currentTimeMillis(), description, email); order.setLang(Order.Lang.ru); final Card card; if (nfcCardBridge.hasCard()) { card = nfcCardBridge.getCard(order); cardInput.display(null); } else { card = cardInput.confirm(); } cloudipsp.pay(card, order, new Cloudipsp.PayCallback() { @Override public void onPaidProcessed(Receipt receipt) { Toast.makeText(MainActivity.this, "Paid " receipt.status.name() "nPaymentId:" receipt.paymentId, Toast.LENGTH_LONG).show(); } @Override public void onPaidFailure(Cloudipsp.Exception e) { if (e instanceof Cloudipsp.Exception.Failure) { Cloudipsp.Exception.Failure f = (Cloudipsp.Exception.Failure) e; Toast.makeText(MainActivity.this, "FailurenErrorCode: " f.errorCode "nMessage: " f.getMessage() "nRequestId: " f.requestId, Toast.LENGTH_LONG).show(); } else if (e instanceof Cloudipsp.Exception.NetworkSecurity) { Toast.makeText(MainActivity.this, "Network security error: " e.getMessage(), Toast.LENGTH_LONG).show(); } else if (e instanceof Cloudipsp.Exception.ServerInternalError) { Toast.makeText(MainActivity.this, "Internal server error: " e.getMessage(), Toast.LENGTH_LONG).show(); } else if (e instanceof Cloudipsp.Exception.NetworkAccess) { Toast.makeText(MainActivity.this, "Network error", Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this, "Payment Failed", Toast.LENGTH_LONG).show(); } e.printStackTrace(); } }); } } @Override public void onBackPressed() { if (webView.waitingForConfirm()) { webView.skipConfirm(); } else { super.onBackPressed(); } } @Override public void onNewIntent(Intent intent) { super.onNewIntent(intent); processIntent(intent); } private void processIntent(Intent intent) { if (nfcCardBridge.readCard(intent)) { Toast.makeText(this, "NFC Card read success", Toast.LENGTH_LONG).show(); nfcCardBridge.displayCard(cardInput); } }
}

Отличается от обычной реализации наличием NfcCardBridge и навешиванием Intent на него для ожидания события, что карта прочитана (readCard)

Подводные камни:


Хотя считывание карты и выполняется посредством NFC, протоколом финансовой авторизации карты по-прежнему служит обычный card not present. Т.е. для полноценной работы этой функциональности, карта должна быть открыта для платежей в интернет.

Лайфхак:

Написав простое приложение, вы сможете использовать его для перевода средств с чужой карты на свою, поднеся чужую карту к телефону. Например это может быть удобно, если вам необходимо списать небольшую сумму с друга в счет карточного долга. С одной стороны это будет практично и удобно, с другой — вполне эффектно.

Для того, чтобы воспользоваться сервисом переводов с карты на карту, необходимо будет предварительно зарегистрироваться на сайте платежной платформы Fondy и привязать банковскую карту, на которую будут поступать средства, в свои финансовые настройки.

Приложение «кошелёк»

Приложение «Кошелёк» не является электронным кошельком или платежной системой, как скажем, многим известный Visa QIWI Wallet и аналоги. «Кошелёк» — это в первую очередь универсальный интерфейс к приложениям (картам) в Secure Element. Благодаря такому подходу, телефон становится «универсальной интерактивной пластиковой картой».

Основная роль приложения заключается в отображении выпущенных или доступных к выпуску карт и обеспечении канала связи между Secure Element и TSM. Также «Кошелёк» дает пользователю возможность интерактивно управлять картами, загруженными в Secure Element.

Приложение предустанавливается на совместимые телефоны на производстве или добавляется с обновлением программного обеспечения таких телефонов (на момент написания текста это HTC One, Philips W8555 и Philips Xenium W336, а в ближайшее время добавятся HTC One Dual SIM, HTC One Max, HTC One SV, HTC Desire 500 и HTC Desire 600). Другие модели и производители появятся позже.

Первая карта, которая доступна в «Кошельке» уже сегодня — предоплаченная банковская карта «ТКС Банка». «Предоплаченная» означает, что карта выпускается без заключения письменного договора с банком, не связана с вашими другими картами в банке, а также в соответствии с законодательством РФ имеет ограничения на одну операцию (не более 15 000 рублей) и общую сумму операций за месяц (не более 40 000 рублей). При выполнении заявки пользователя на выпуск, карта доставляется в телефон в среденем в течение 10 минут.

Банковская карта, загруженная в «Кошелёк», не является виртуальной, как бы нам не хотелось использовать этот термин для нематериальной карты. После персонализации и активации карта действитльно существует «физически» именно в телефоне и взаимодействует с терминалом на кассе в магазине также, как ее пластиковый прародитель, а банковский термин «виртуальная» используется для карт, предназначенных исключительно для платежей в интернете, и не подразумевает взаимодействия с физической инфраструктурой и множества прочих функций карточных продуктов.

Яндекс.деньги

Транзакции с помощью этого приложения требуют наличия активного Яндекс.Кошелька. Последующая настройка выглядит так:

  1. Установите «Яндекс.Деньги».
  2. Откройте приложение и пройдите авторизацию.Запуск Яндекс.Деньги
  3. Введите пароль с СМС, отправленного на номер, к которому привязан кошелек.Подтверждение учетной записи
  4. Происходит первичная настройка темы и кнопок для быстрой оплаты.Выбор оформления темы в Яндекс.Деньги
  5. Придумывают пароль для доступа к кошельку.Пароль в Яндекс.Деньги
  6. Приложение автоматически выпускает бесконтактную карточку для оплаты через NFC, она находится во вкладке «Карты».
  7. Тапните по карте и установите платежи через Яндекс как основные, нажав «Да».Активация оплаты через Яндекс.Деньги с помощью NFC

Счет кредитки связан с наличными на кошельке.

Оцените статью
NFC в смартфонах