Одним касанием: как работает NFC и где эта система используется | РБК Тренды

Что такое технология nfc и как она работает

Уже много написано о NFC. Причем, одно и то же, копируется и кочует из одной статьи в другую, из видео в аналогичное видео. Википедия дает свой, оригинальный вариант восприятия. Мне он кажется наиболее образным, его и примем за основу.

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

Итак, поднеся на близкое расстояние (менее 20 см) друг к другу, два телефона с NFC чипом, возникающие электромагнитные поля воздействуют друг на друга таким образом, что в одном из них, согласно законам физики, появляется электрический ток, несущий в себе закодированный цифровой сигнал.

Такова суть бесконтактной технологии в ближнем поле (перевод с английского аббревиатуры NFC), если смартфоны развести на большие расстояние, то сердечник «рвется» и связь прерывается. В случае если у вас смартфон супер больших размеров, скорее фаблет, но еще не планшет, то для правильной ориентации модуля в пространстве нужно знать одно единственное правило. Антенну прячут за задней крышкой, иногда помечая ее специальной наклейкой.

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

Описываемая в статье бесконтактная оплата, является случаем пассивного режима технологии NFC. Когда целевое устройство (торговый терминал, например) работает простым ретранслятором, или передатчиком неких сигналов, задаваемых смартфоном.

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

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

Что делать если не работает оплата по nfc

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

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

  1. Простые косяки. Здесь собраны недочеты и ошибки самого пользователя.
    • Низкий заряд аккумулятора, меньше 5% провести транзакцию не удастся.
    • Баланс на привязанной карте не позволяет расплачиваться.
    • NFC-чип выключен в настройках.
    • На терминале нет искомого логотипа, а вы ломитесь в закрытые ворота.
    • Да и карта вашего банка, того… Не поддерживается.
  2. Программные ошибки.
    • Приложение не хочет устанавливаться? Причин может быть несколько, от геополитических до тривиальных. Как вариант, посмотреть наличие оперативной памяти в устройстве. А также заглянуть в Google, является ли ваша страна ее адептом?
    • Если оплата не проходит по непонятной причине, не классифицируется, есть выход. Попробуйте сделать, так называемый программный ресет. Удалите привязанную карту из своего аккаунта и снова ее туда пропишите. Иногда помогает.
    • Не подключается к системе оплаты. Перезапустите приложение, возможны глюки самой утилиты.
  3. Технические. Известна ошибка 56 в приложении Apple Pay. Указывает на неисправность модуля NFC. Кроме того, известны случаи, когда неверно ориентированное устройство с чипом, отказывается дружить с торговым оборудованием. Попробуйте поменять положение телефона.

На этом заканчиваю, так как статья не резиновая и все вместить сюда не получится. Ищите простое решение, о сложном задумаетесь только в случае неудачи.

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

Nfc на телефоне и не только

NFC World ведет список смартфонов с поддержкой технологии. В соответствии с ним, каждый iPhone, начиная с iPhone 6, поддерживает ее. Последние iPhone 12 также поддерживают теги NFC через приложение Launch Center Pro.

NFC добавили и в линейку iPad, начиная с iPad Pro, iPad Air 2 и iPad Mini третьего поколения.

С поддержкой NFC выпускается каждое устройство под управлением Android 4.0 или более новой версии ОС. Samsung, к примеру, отдельно публикует список своих смартфонов с поддержкой NFC и характеристиками технологии.

Функцию NFC встраивают и в «умные» браслеты, к примеру, серии Xiaomi Mi Band. А »умные» часы с NFC работают так же, как смартфон с аналогичным чипом. Обычно их функционал ограничен и используется только для оплаты покупок и услуг.

Кроме того, существуют NFC-кольца для оплаты покупок.

Кольцами можно пользоваться для оплаты общественного транспорта, а также как ID-карточкой. Чтобы воспользоваться кольцом, нужно установить на смартфон приложение от его разработчика.

Активация nfc на «андроид»

Активация NFC на Android (версии от 4.4 KitKat):

  1. Запустить меню настроек (с экрана или области уведомлений).Ярлык Настройки на рабочем столе телефона
  2. Найти подменю «Беспроводные сети».
  3. Пролистать вниз и войти в подраздел «Ещё».Вкладка Еще в настройках Беспроводные сети
  4. Открыть подраздел и найти опции NFC и Android Beam.
  5. Установить галочку на разрешение обмена данными.
  6. В строке Android Beam проверить автоматическую активацию или настроить вручную, тапнув по строке пальцем.Опции NFC и Android Beam в телефоне

Возможные проблемы и их решение

Если терминалу не удается считать данные карты при попытке оплаты чего-либо или же когда возникают другие проблемы с использованием чипа, рекомендуется выполнить следующие действия:

  1. зайти в настройки безопасности, раздел с разрешениями, найти там Android Pay и установить переключатель в положение «Разрешить» во всех доступных там пунктах;
  2. в настройках безопасности отметить Android Pay для разрешения его автозапуска;
  3. открыть настройки батареи и производительности, выбрать «Расход заряда батареи приложениями», при необходимости включить эту функцию, немного выше выбрать со списка приложений Android Pay, установить переключатель в «Нет ограничений» и немного ниже – «Разрешить»;
  4. перейти в настройки уведомлений и строки состояния, и в списке приложения для Android Pay отметить все пункты;
  5. следующее – зайти в настройки – «Еще» – «Расположение элемента безопасности» – «Использовать HCE Wallet», немного ниже – Бесконтактная оплата, как основное средство оплаты платежей выбрать Android Pay;
  6. и последняя настройка – зайти в настройки безопасности, выбрать пункт с параметрами питания и отключить функцию энергосбережения.
Читайте ещё про NFC:  Все об NFC модуле в смартфонах от Samsung: как работает, как подключить

В результате выполнения таких действий решается большинство распространенных проблем, которые могут возникать при использовании беспроводного модуля NFC на смартфонах Xiaomi.

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

Бесконтактная оплата
Бесконтактная оплата доступна и на картах PayPass.

Поэтому перед покупкой флагманских мобильных устройств, стоимость которых гораздо выше популярной линейки Редми, важно определить для себя, действительно ли так нужна поддержка NFC. Если же модуль принесет дополнительное удобство – список смартфонов с подобной функцией теперь известен всем, так что можно выбрать подходящую модель, в противном случае переплачивать лишь ради Near Field Communication не имеет особого смысла.

Добавление банковской карты в google pay для бесконтактной оплаты с помощью nfc на xiaomi

Это всё, что возможно настроить в Xiaomi, теперь перейдём в приложение Google Pay и привяжем банковскую карту.

Запуск приложения Google Pay
Прежде, чем привязать карту, убедитесь, что ваш банк имеет интеграцию с сервисом Google, иначе оплата работать не будет. Сделать это возможно в самом приложении, для этого, войдя в него, нажмите на иконку «Бутерброд» в левом верхнем углу.Вызов контекстного меню настроек Google Pay
В появившемся меню выберите пункт «Банки-участники».Выбор пункта Банки-Участники в настройках Google Pay
Рядом с иконкой вашего аккаунта увидите значок «Увеличительное стекло», нажмите на него и в появившейся строке поиска наберите «Банки».Поиск слова Банки в справке Google Pay
В результате поиска ищите пункт «Способы оплаты, поддерживаемые в России».Способ оплаты, поддерживаемый в России с помощью Google Pay
Вы перейдёте на страницу, где перечислены все российские банки, которые работают с Google Pay.

Если ваш банк в списке, можно приступать к последнему шагу – привязке карты к Google аккаунту.

Список банков сотрудничающих с Google Pay для бесконтактной оплаты на Xiaomi
Вернитесь в главное окно программы, в нижней части экрана нажмите на иконку «Оплата». После чего нажмите на кнопку « способ оплаты».Добавление карты банковской в Google Pay для бесконтактной оплаты на Xiaomi
Следуйте инструкции на экране, вы вошли в безопасную зону, где сделать скриншот невозможно, поэтому я не могу вам дать подробные инструкции. От вас попросят направить камеру телефона на карту, чтобы автоматически распознать её тип и номер, ввести CVC код и получить смс-подтверждение от банка. После чего запустится автоматическая проверка и привязка карты к аккаунту.

В результате вы должны увидеть карту в списке активных средств оплаты.

Помните: оплата в магазине произойдёт только если включен NFC и телефон разблокирован.

Как включить nfc

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

Для включения откройте настройки, перейдите в раздел «Подключение и общий доступ».

Подключение и общий доступ в настройках Xiaomi
В списке найдите строку «NFC» и активируйте её. Всё, технология работает.Включение NFC на Xiaomi
Также можно воспользоваться шторкой уведомления.

Как выбрать систему оплаты

В России действуют три крупнейшие платежные системы, предполагающие бесконтактную оплату технологи NFC. В частности:

  1. Apple-Pay.
  2. Android-Pay.
  3. Sumsung-Pay.

Эти сервис-системы имеют много схожего между собой. Идентичны имеющиеся системы безопасности, технологии и методы осуществления платежей. Но стоит знать, что у каждой из них также имеются и собственные особенности, плюсы и минусы. Зависят они от особенностей имеющейся политики производителей сотовых телефонов. Это нужно знать и учитывать при выборе сервиса.

телефон для бесконтактной проплаты
Суть NFC-системы

Как настроить оплату

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

  1. Проверьте устройство на наличие в нем искомого модуля и включите его. Обычно сведения о NFC находятся в разделе настроек под названием беспроводные сети — еще (дополнительные функции) — NFC. Сделайте активной опцию, если она у вас есть.
  2. Убедитесь, что программа Android Beam включена в работу, системное приложение «подхватывает» дремавшую изначально опцию, и поможет вам осуществить платежи.
  3. Кроме того, понадобится утилита-эмулятор банковской карты, их на Play Маркете немыслимое количество. Не теряйтесь, выбираем самые надежные, опробованные временем, исходя из названия модели вашего телефона. О каждой из них пойдет речь в дальнейшем.
  4. На данном этапе отметим, что после скачивания приложения с Google Play и первого запуска в телефоне, предстоит привязать банковскую карту для повседневного использования. Здесь уже пути реализации алгоритма разнятся, поэтому описание будем проводить для каждой конкретной программы.
  5. Не забывайте о заряде аккумулятора, не стоит даже пытаться провести платеж на нулевом уровне, зависание транзакции в самый неподходящий момент вам ни к чему.
  6. Следующий важный шаг, заключается в настройке уже установленного приложения. Для экономии времени в самый ответственный момент, установите требуемое приложение, как действующее по умолчанию. Один единственный раз и навсегда. Для этого заходим по пути: настройки — приложения — дополнительные настройки, затем приложения по умолчанию (системные). Укажите уже установленную утилиту, как отвечающую за бесконтактную оплату, в следующий раз платеж пройдет гладко, без лишних вопросов.
  7. Если ни в настройках беспроводной связи, ни в приложениях не отыщется словосочетание: бесконтактная оплата, то у вас в телефоне эта возможность отсутствует.

Как пользоваться sberpay? как оплатить покупку на кассе?

Есть два варианта – с минимальным количеством действий в приложении и двумя прикладываниями смартфона к терминалу оплаты или с активацией SberPay в приложении и одним прикладыванием смартфона к терминалу.

Вариант 1:

  1. Откройте приложение «Сбербанк Онлайн».
  2. Поднесите смартфон к терминалу.
  3. Разблокируйте устройство.
  4. Поднесите смартфон к терминалу ещё раз для совершения оплаты.

Вариант 2:

  1. Откройте приложение «Сбербанк Онлайн».
  2. Перейдите в «Платежи».
  3. Выберите «Оплата SberPay».
  4. Разблокируйте устройство.
  5. Поднесите смартфон к терминалу для совершения оплаты.

Одним касанием: как работает NFC и где эта система используется | РБК Тренды

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

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

Также Вы можете ознакомиться с более свежим обзором настройки сервиса SberPay (с добавлением карт МИР): здесь. Возможно, там будут интересующие Вас детали, так как со временем приложение претерпело изменения.

Читайте ещё про NFC:  Как добавить способ оплаты в Apple ID на iPhone и iPad - IT-HERE.RU

Кейс 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.
Вот как это может выглядеть:
Одним касанием: как работает NFC и где эта система используется | РБК Тренды
Подводные камни:
Кастомизируя поля ввода стоит помнить:
— 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);
        }
    }
}

Читайте ещё про NFC:  Инструкция. Оплата телефоном вместо карты Сбербанк. Как добавить карту в Google Pay, Samsung Pay и Apple Pay

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

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


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

Лайфхак:

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

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

Необходимые системные настройки nfc для бесконтактной оплаты телефоном

Прежде, чем переходить к настройке банковской карты на Сяоми, необходимо выполнить несколько простых настроек в системе Android, которые касаются NFC.

Для этого откройте настройки телефона, найдите пункт «Подключение и общий доступ».
Подключение и общий доступ в MIUI 12 на Xiaomi

Теперь найдите раздел

«NFC»

, убедитесь, что функция включена.

Включение NFC на Xiaomi

Обратите внимание на строку

«Расположение элемента безопасности»

, убедитесь, что он установлен на

«Используется кошелёк HCE»

, иначе

Кошелёк HCE

После того, как будет установлено приложение Pay, убедитесь, что в строке

«Бесконтактная оплата»

именно оно выбрано в качестве оплаты по умолчанию.

Google Pay в качестве платёжной системы по умолчанию на Xiaomi

Привязка банковских и подарочных карт

Перед тем, как использовать NFC на Xiaomi, необходимо не только активировать чип, но и привязать к нему платежную карту. Это делается в приложении Google Pay.

Как привязать банковскую карту к системе:

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

Перед тем, как привязывать карту и пробовать оплачивать, узнайте, поддерживает ли программа ваш банк (в разделе «Банки-участники», либо по номеру телефона, указанному на самой кредитке).

Карты в Google Pay на Сяоми
Аналогично можно подключить к приложению и скидочные, проездные или подарочные карты.

Само название NFC — это аббревиатура, которая расшифровывается, как Near Field Communication («Связь на близком расстоянии»).

Процесс оплаты

Существуют определенные различия по тому, как оплатить NFC через Сбербанк с помощью смартфона на iOS или Андроид. В первом случае нужно:

  1. Разблокировать мобильное устройство и поднести его к платежному терминалу, поддерживающему функцию приема бесконтактных транзакций. При наличии значка антенны на приборе данная опция доступна. Если пользователь не знает, как выглядит обозначение, он может уточнить информацию у кассира.
  2. Перед тем, как убрать смартфон, нужно дождаться сигнала, подтверждающего передачу данных. Для этого обычно достаточно 2-5 секунд.
  3. Подтвердить транзакцию отпечатком пальца или посредством введения ПИН-кода.

Что касается того, как сделать перевод средств через Google Play, достаточно следовать инструкции:

  1. Активировать смартфон.
  2. Поднести телефон к терминалу.
  3. Дождаться появления галочки, которая подтверждает проведение оплаты.

Использовать NFC модуль можно в различных ситуациях:

  • оплата покупок;
  • расчет по коммунальным услугам;
  • оплата проезда банковской картой в Ижевске, Москве или любом другом городе;
  • использование карты в иных странах. К примеру, доступен NFC в БПС Сбербанк.

В зависимости от типа карты и стоимости покупки, может потребоваться ввести ПИН-код. До какой суммы не нужно выполнять дополнительных действий – зависит от договорных положений. Обычно ее размер не превышает 1 тысячи рублей.

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

Суть бесконтактной проплаты

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

Малый радиус покрытия NFC гарантирует безопасность бесконтактных платежей и невозможность перехвата конфиденциальных данных.

Повышенный порог безопасности таких проплат гарантирует и использование виртуального счета. Что позволяет не использовать сберкарточку и не «светить» ее при проводимых оплатах. Для таких транзакций требуется:

  1. Установленное приложение.
  2. Телефон со встроенным чипом.
  3. Считывающее платежное устройство.

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

как подключить NFC для платежей Сбербанк
Телефон с установленным приложением действует по аналогии бесконтактный пластиковых карт

К явным преимуществам такой системы оплаты специалисты относят следующее:

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

Требования к телефону

Необходимо рассмотреть требования, которые предъявляются к гаджету, чтобы приложение можно было подключить:

  1. Сертифицированная операционная система.
  2. Версия Android не ниже 4.4.
  3. NFC-чип, отвечающий за бесконтактные платежи.
  4. Загрузчик должен быть заблокирован.
  5. Root-права отключены.
  6. В стране пользователя должна поддерживаться данная платежная система.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector