Как подключить Android Pay Сбербанк

Замок с радиочастотной идентификацией на базе nfc контроллера pn532

Привет друзья.

В данной теме пойдет речь о конфигурации микроконтроллера через UART (Universal Asynchronous Receiver-Transmitter) интерфейс. А рассмотрим мы это на примере MQTT логгера. В данном случае, это будет логгер температуры. Мне это устройство потребовалось на работе, даже не мне, а моим коллегам, и оно действительно работает и приносит огромную пользу т.к контроль температуры производится совместно с отличной, на мой взгляд, системой мониторинга Zabbix с оперативными оповещениями, построением графиков, блэк-джеком и… Подробнее о дружбе Arduino и Zabbix можно почитать тут

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

И тут на помощь приходит UART

Микросхема UART to USB имеется в большинстве плат семейства Arduino, а там, где её нет, обычно выведены соответствующие «пины». И все это очень облегчает жизнь т.к позволяет общаться с контроллером, просто подключив его к компьютеру напрямую или через переходник, благо их везде навалом, да и стоят они как пачка семечек. Остается только запустить любой терминал, который умеет доставлять в конец строки символ «перевод строки», что известен в народе как «n», а в ASCII таблице имеет номер 0A.

Кстати, в Serial мониторе Arduino IDE выставить символ конца строки можно так

Ну а дальше только, что и остается, как общаться с устройством на той стороне. И тут мы переходим к основному алгоритму программы. Но перед этим хочу отметить, и это ВАЖНО, что за любое упрощение жизни, всякие красивости и прочее, приходиться платить, и цена довольно высока! В данном случае, это ОЗУ микроконтроллера. Поэтому не раскатываем губы, а если очень хочется, то берем следующий по характеристикам микроконтроллер. А начинать мы будем с ATmega328P, что известен в народе как Arduino UNO, Arduino Nano, IBoard v1.1 и т.д по списку. Заканчивать Вы можете чем угодно, хоть ATmega2560, ESP8266 или ESP32. В противном случае, производим оптимизацию кода, отказываемся от громоздких библиотек, или вообще, от Arduino IDE.

Что мы хотим получить

Вся конфигурация микроконтроллера должна храниться в энергонезависимой памяти (ПЗУ) известной нам как EEPROMM.

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

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

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

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

Как сохранять конфигурацию в EEPROM

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

#include <EEPROM.h>

На данный момент нас интересуют две функции, это чтение и запись

EEPROM.get(address, variable);
EEPROM.put(address, variable);

Обе принимают два параметра:

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

Переменная чье содержимое надо сохранить или в которую нужно из памяти прочитать

Особенность работы этих функция заключается в том, что в зависимости от типа переданной им переменной во втором параметре, будет произведено чтение или запись ровно того количества данных которое соответствует размеру типа этой самой переменной. На простом языке это означает, что если переменная variable будет иметь типа byte, то и работать мы будем с объемом памяти в 1 байт. И тоже самое произойдет с абсолютно любым типом данных пока мы не упремся в размеры самого EEPROM или ОЗУ микроконтролера. Из этого всего следует, что мы можем создать свой собственный тип данных, разместить в нем необходимую нам информацию и всего лишь двумя функциями помещать его в память и извлекать обратно.

И в этом нам поможет пользовательский составной тип — структура (struct). Данный тип позволяет объединить в себе различные типы данных, упорядочить их и присвоить им понятные имена.

Это общий пример для большего понимания, как объединить несколько типов данных в одной структуре, получить к ним доступ, записать и прочитать их из EEPROM.

Наша структура будет немного сложнее, но суть остается той же самой.

// Дополнительная структура описывающая IPv4 адреса
struct addres {
byte a;
byte b;
byte c;
byte d;
};

// Структура объекта конфига для хранения в EEPROM
struct configObj {
addres ip;
addres subnet;
addres gateway;
addres dns;
byte mac[6];
byte hex;
char server[40];
char topic[40];
} config;

Данная структура хранит сетевые настройки для работы с Ethernet модулем (w5100 и выше) Arduino, базовые настройки для связи с MQTT брокером. Сразу при описании структуры мы объявили новую переменную с именем config с типом нашей структуры.

ВАЖНО: кроме наших данных в структуре имеется дополнительная переменная с именем hex. Её задача, это контроль наличия наших данных в EEPROM. Она всегда должна содержать одно и тоже значение. Представьте ситуацию, что вы взяли контроллер в EEPROM которого находится какая-либо информация (может там чисто, но мы этого не знаем наверняка) и мы прочитаем данные и поместим их в нашу переменную. В итоге мы получим данные которым нельзя доверять, а что еще хуже, это если эти самые данные нарушат работу внешнего оборудования.

Более правильным, на мой взгляд, будет проверка значений по конкретно определенным адресам. Например, мы знаем, что в 16 байте должно быть значение 0xAA и если оно действительно там, то мы убеждаемся, что это наша информация. Естественно, что контрольных точек может быть несколько и разумеется с разными значениями, это увеличит гарантию того, что данные являются нашими, но 100% гарантии не даст. Для более серьезных проектов есть более серьезные методы, например, подсчет контрольной суммы всего набора данных.

Также структура может иметь вложенные структуры, у нас ими являются: ip, subnet, gateway, dns. Вы можете отказаться от такого варианта и записывать данные просто в массив байт, как это было сделано с MAC адресом. Естественно, что обращаться к этим полям нужно по-разному.

Запись данных в поле subnet

config.subnet = {255, 255, 255, 0};

Запись данных в поле mac

byte mac[] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02};
memcpy(config.mac, mac, 6);

С записью данных в поле server все еще проще

config.server = «mqtt.nfcexpert.ru»;

Функция, которая возвращает нашу структуру данных с полностью заполненными полями.

// Начальный конфиг
configObj defaultConfig() {
configObj config = {
{192, 168, 0, 200},
{255, 255, 255, 0},
{192, 168, 0, 1},
{192, 168, 0, 1},
{0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02},
0xAA, // Не трогать! Используется для проверки конфигурации в EEPROM
F(«mqtt.nfcexpert.ru»),
F(«arduino/serial/config»)
};
return config;
}

Читайте ещё про NFC:  Cчитыватели RFID (РФИД) и модуль для RFID меток

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

Вот пример того, как используя описанную нами структуру, мы проверяем целостность настроек в EEPROM и в случае не совпадения hex значений, загружаем настройки по умолчанию.

const byte startingAddress = 9;
bool configured = false;

void loadConfig() {
EEPROM.get(startingAddress, config);
if (config.hex == 170) configured = true;
else config = defaultConfig();
configEthernet(); // Функция производящая настройку сети
}

Как контроллеру начать понимать, что от него хотят

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

void serialEvent() {
// Вызывается каждый раз, когда что-то прилетает по UART
// Данные передаются посимвольно. Если в строке 100 символов, то функция будет вызвана 100 раз
}

И в контексте обсуждаемой нами программы, мы можем представить ее в следующем виде

void serialEvent() {
  serialEventTime = millis();
  if (console.available()) {
    char c = (char)console.read();
    if (inputCommands.length() < inputCommandsLength) {
      if (c != ‘n’) inputCommands = c;
      else if (inputCommands.length()) inputCommandsComplete = true;
    }
  }
}

Её задача, символ за символом, собрать в кучу все переданные нами данные и при получении заветного символа перевода строки (именно он даст нам понять, что передача сообщения завершена) сообщить, что команда получена и передать накопленный буфер данных своей напарнице по цеху.

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

Останется только избавиться от них, и самым удобным моментом будет, когда этот поток шлака прекратиться. Чтобы об этом узнать мы будем запоминать время, когда пришел каждый из символов переданной строки перезаписывая соответствующую временную переменную данными о следующем символе и т.д пока поток не иссякнет. И как только расхождение текущего времени CPU и времени, когда поступил последний символ превысит некоторое значение, пусть это будет 1 секунда, мы очистим нашу память. Этот простой механизм напоминающий амнезию позволит избавить нас от лишних проблем.

Переменная отвечающая за размер принимаемого буфера

const byte inputCommandsLength = 60;

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

void serialEventHandler() {
// вызывается в loop и проверяет взведена ли переменная inputCommandsComplete
// в полученных данных пытается распознать команды
}

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

Разбор serialEventHandler

Полученные данные будут переданы нам в переменной inputCommands с типом String

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

inputCommands.trim();

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

if (inputCommands == F(«help»)) {
consoleHelp();
} else if (inputCommands == F(«restart»)) {
resetFunc();
} else {
// Все сложные команды обрабатываются в этом блоке
}

Как Вы видите, все очень просто и скучно. Но не в том случае если команда динамическая, то есть содержит не только саму команду (заголовок) но и полезную нагрузку (параметр) которая может меняться раз от раза. Простой пример это команда изменения ip адреса и её варианты:

ip 37.140.198.90

ip 192.168.0.244

ip 10.10.10.88

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

if (inputCommands.startsWith(F(«ip»))) {
// Строка inputCommands начинается с пары символов «ip»
}

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

inputCommands.substring(4)

В данном случае начиная с 4-его и заканчивая последним. И как Вы успели заметить, отсчет мы начинаем не с третьего символа, что соответствует нашей строке без вступительного «ip», а на один больше т.к между заголовком и параметром имеется разделяющий символ в виде пробела.

Далее, полученную строку мы передадим в функцию, занимающуюся разбором на компоненты и принимающую следующие параметры:

Указатель на переменную с типом char, для этого нам потребуется преобразовать наш тип String

Символ разделителя, что для IPv4 является точка «.»

Указатель на массив типа byte, которому будет присвоен результат разбора

Количество искомых элементов в строке

И система счисления, подразумеваемая в качестве исходной для записи элементов подстроки

/*
Парсинг
https://stackoverflow.com/questions/35227449/convert-ip-or-mac-address-from-string-to-byte-array-arduino-or-c
*/
void parseBytes(const char* str, char sep, byte* bytes, int maxBytes, int base) {
for (int i = 0; i < maxBytes; i ) {
bytes[i] = strtoul(str, NULL, base);
str = strchr(str, sep);
if (str == NULL || *str == ») break;
str ;
}
}

В нашем случае выглядеть это будет следующим образом

byte ip[4];
parseBytes(inputCommands.substring(4).c_str(), ‘.’, ip, 4, 10);

А дале все становится еще проще, попросту проверить попадает ли наш ip адрес, в список правильных адресов. И самой простой проверкой послужит проверка первого байта адреса на несоответствие не угодным нам сетям (0, 127, 255)

if (ip[0] != 127 and ip[0] != 255 and ip[0] != 0) {
// Производим необходимые нам действия с ip адресом, например, запись в конфиг
config.ip = {ip[0], ip[1], ip[2], ip[3]};
}

Вы в праве реализовать собственные проверки, какие только душе угодны.

Также хотелось бы отметить, что обрабатывать некоторые параметры проще и быстрее через их короткие записи. К таким можно отнести маску подсети устройства. Например, привычный дня нас адрес 192.168.0.1 с маской подсети 255.255.255.0 можно записать в виде 192.168.0.1/24, где цифра 24 указывает нашу подсеть в краткой форме. А, следовательно, мы можем записать несколько кратких форм масок подсети в следующем виде:

subnet 255.255.255.0 или subnet 24

subnet 255.255.0.0 или subnet 16

subnet 255.0.0.0 или subnet 8

Это основные маски, и я не описывал все существующие т.к в этом нет нужды, но если Вам интересно, то почитать про них можно в wikipedia.

if (inputCommands.startsWith(F(«subnet»))) {
    String input = inputCommands.substring(8);
    if (input == F(«24»))      config.subnet = {255, 255, 255,   0};
    else if (input == F(«16»)) config.subnet = {255, 255,   0,   0};
    else if (input == F(«8»))  config.subnet = {255,   0,   0,   0};
    else {
// Все остальные маски попадают в этот блок
        byte subnet[4];
        parseBytes(input.c_str(), ‘.’, subnet, 4, 10);
config.subnet = {subnet[0], subnet[1], subnet[2], subnet[3]};
    }
}

Читайте ещё про NFC:  Как отключить бесконтактную оплату с карты Сбербанка. Как отключить бесконтактный платёж paypass на карте. Выключение чипа NFC для оплаты на телефоне.

MAC адрес хранится у нас в виде массива байт. Его перезапись другим массивом производится с помощью функции memcpy

if (inputCommands.startsWith(F(«mac»))) {
byte mac[6];
parseBytes(inputCommands.substring(4).c_str(), ‘:’, mac, 6, 16);
memcpy(config.mac, mac, 6);
}

Изменение адреса MQTT сервера

if (inputCommands.startsWith(F(«server»))) {
String server = inputCommands.substring(8);
server.trim();
if (server.length() < 40) server.toCharArray(config.server, 40);
}

В принципе теперь понятно, как производить получение, разбор и сохранение конфигурации в EEPROM микроконтроллера.

Как это выглядит на практике

Заливаем программу в микроконтроллер и подключаемся к Arduino по usb или через переходник. Открываем терминал и нас приветствуют краткой справкой с описанием доступных команд.

— —————————————————————————————
# Sensor with data sending to mqtt server (c) nfcexpert.ru
# Use the «config» command to view the current configuration
# To change the configuration, specify the parameter name and its new value with a space,
# for example «ip 192.168.0.200», «subnet 255.255.255.0» or «mac AA:BB:CC:DD:EE:FF»
# You can also specify a subnet using the mask 24, 16 or 8
# Additional commands:
# sensors — view current data from sensors
# config — view current configuration
# save — saves the current configuration
# reset — resets all settings
# restart — restarts the device
# eeprom clear — removes all contents of eeprom
# help — view this help
— —————————————————————————————

Т.к. в EEPROM микроконтроллера не была обнаружена конфигурация (волшебный hex байт нам подсказал), то были задействованы стандартные настройки. Просмотреть текущую конфигурацию можно командой config

config
# ip: 192.168.0.200
# subnet: 255.255.255.0
# gateway: 192.168.0.1
# dns: 192.168.0.1
# mac: 00:AA:BB:CC:DE:02
# server: mqtt.nfcexpert.ru
# topic: arduino/serial/config

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

ip 10.10.10.99
# ok
gateway 10.10.10.1
# ok
dns 10.10.10.1
# ok

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

save
# ok
restart
# ok
# restarting device…

Если параметр был успешно принят, то контроллер ответит нам «ok», а в противном случае ругнется.

ip 127.0.0.1
# bad ip

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

qwerqwer1243
# bad command

С остальными командами Вы разберетесь самостоятельно.

Исходник: MQTT_CLIENT_328_SERIAL_CONFIG.zip

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

Об rfid-метках и работу с ними при помощи arduino | блог интернет-магазина nfcexpert.ru

Вам, конечно же, знакомы карточки и брелки, которые нужно подносить к считывателю, а они при этом пропускают на работу или дают проехать в метро. Такие брелки и карточки используют технологию под названием RFID — Radio Frequency IDentification. Сегодня мы познакомимся с основами этой технологии, а также узнаем, как использовать ее в своих проектах на базе Arduino.

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

Стоит отметить, что это описание касалось пассивных меток. Бывают и активные метки, имеющие собственный источник питания, а также полупассивные. Что же касается радиосигнала, в RFID сигнал типично передается на частоте 125 КГц или 13.56 МГц. Существует множество стандартов передачи сигнала и их реализаций. Довольно распространенным является стандарт ISO/IEC 14443 и его реализация MIFARE от компании NXP Semiconductors. Еще одним известным стандартом является NFC, основанный на ISO 14443. Одна из его реализаций называется NTAG, также от NXP Semiconductors. Стоит отметить, что в общем случае реализации одного стандарта от разных производителей могут быть не вполне совместимы друг с другом и содержать расширения, которых нет в самом стандарте.

Fun fact! В метках MIFARE используется секретный шифр Crypto-1, выжигаемый прямо в железе, что изначально делало невозможным клонирование этих меток. Шифр со временем отреверсили и предали широкой огласке, поэтому последние лет 10 метки MIFARE может свободно клонировать кто угодно. Кое-какие подробности описаны в этих слайдах. Эта история наглядно демонстрирует, почему безопасность через неясность (security by obscurity) не работает.

RFID-модуль RC522 для Arduino
Комплект для Arduino — RFID модуль RC522, карта, брелок, штырьковые разъемы

Для Arduino существует несколько модулей для работы с RFID. Пожалуй, самым дешевым и в то же время самым популярным, является модуль под названием RC522 на базе чипа MFRC522 от NXP. Чип MFRC522 поддерживает технологии MIFARE и NTAG, радиосигнал передается на частоте 13.56 МГц. С микроконтроллером чип общается по SPI. Однако прямо по SPI ходить в чип нам не придется, так как для работы с модулем существует готовая библиотека MFRC522. Ее можно установить прямо из Arduino IDE.

Подключение модуля к Arduino Uno осуществляется так:

  • Пины 3.3V и GND Arduino подключаем к аналогичным пинам модуля;
  • Пины с 9 по 13 Arduino подключаем к пинам RST, SDA, MOSI, MISO и SCK модуля соответственно;

В итоге должно получиться что-то в таком стиле:

RFID-модуль для Arduino

Рассмотрим простейший пример кода:

Этот код полностью считывает содержимое метки и передает его в компьютер по UART. Если теперь поднести карточку к считывателю, вы увидите что-то вроде:

Отсюда мы можем узнать, что метка имеет 32-х битный идентификатор (UID), а также содержит в себе 1 Кб данных. Также можно заметить, что UID на самом деле представляет собой данные, хранящиеся в нулевом блоке.

Теперь допустим, что у нас есть дверь, и мы хотим открывать ее только тем, кто приложит правильную карточку. Проще всего это сделать, проверяя UID карточки:

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

Как видите, пользоваться модулем достаточно просто. С его помощью вы без проблем добавите в ваши проекты аутентификацию по карточкам. Стоит только иметь ввиду, что MIFARE-метки достаточно легко клонируются. Вместе с библиотекой MFRC522 идет еще масса примеров, включая смену UID и полное клонирование карт.

Оригинал статьи в блоге «Записки программиста».

Купить RFID RC522 13.56MHz в интернет-магазине nfcexpert.ru

Купить набор Arduino c модулем RFID RC522 13.56MHz

Ответы на вопросы

Карты каких платежных систем можно использовать в Apple Pay?

Все карты Mastercard и Visa ВТБ*.

* За исключением карт экс-ВТБ Банк Москвы (ПАО).

Где принимается Apple Pay?

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

Устройства iPhone, iPad и Apple Watch позволяют использовать Apple Pay для оплаты в программах при отображении надписи «Apple Pay» в качестве варианта оплаты. Ищите в программах одну из указанных ниже кнопок:

Устройства iPhone, iPad и компьютер Mac позволяют использовать Apple Pay для оплаты на веб-сайтах в браузере Safari. При совершении покупки на сайте должна быть доступна одна из указанных выше кнопок.

Читайте ещё про NFC:  Как перевести деньги по номеру телефона Сбербанк

Можно ли использовать Apple Pay, если моя карта заблокирована?

Для совершения операции пластиковая карта должна быть активна. Если вы ее заблокировали, для проведения операций разблокируйте ее или перевыпустите и привяжите новую карту. При блокировке карты все связанные цифровые карты также блокируются.

Сколько стоит сервис Apple Pay?

Данный сервис абсолютно бесплатный для всех клиентов — вам только нужна активная карта ВТБ. При оплате покупок дополнительная комиссия также не взимается.

Какой ПИН-код необходимо вводить при оплате покупок?

Если при оплате сервисом Apple Pay кассир просит ввести ПИН-код на терминале — необходимо указать ПИН-код пластиковой карты. При этом, его могут не спросить даже при покупках на сумму свыше 1000 руб., так как вы подтверждаете покупку отпечатком пальца.

Должно ли быть устройство подключено к сети Интернет для регистрации карты в приложении и оплаты покупки?

При регистрации Интернет обязателен, можно использовать Wi-Fi или мобильные данные. Для оплаты наличие Интернета необязательно.

Начисляются ли мне бонусы / мили / cash back при оплате телефоном?

Все бонусы начисляются в полном размере, как при оплате обычной картой.

Какие устройства совместимы с Apple Pay?

iPhone XS, iPhone XR, iPhone XiPhone 8 и 8 PlusiPhone 7 и 7 PlusiPhone 6, 6 Plus, 6s и 6s PlusiPhone SEWatch — все моделиiPad Pro 9,7 и 12,9iPad Air 2iPad mini 3 и 4

Что будет с сервисом Apple Pay, если я сброшу настройки сети?

Сервис продолжит работать.

Что будет с сервисом Apple Pay , если я обновлю версию iOS?

Сервис продолжит работать.

Что будет с моими зарегистрированными в сервисе Apple Pay карточками, если я удалю Touch ID, Face ID или все пароли с IPhone / IPad?

Все зарегистрированные карточки будут удалены.

Могу ли я добавить на свое устройство карточку третьего лица?

Банк не рекомендует загружать карточки третьих лиц на свои устройства.

У меня 2-е часов Apple Watch, которые связаны с одним IPhone, как будет добавляться карточку на часы?

Карточка добавляется на каждые часы отдельно через приложения Watch или Wallet.

Я не могу загрузить карту в IPhone / IPad / Apple Watch

Наиболее распространенные причины:

  • Устройство не поддерживает Apple Pay
  • Неверно указаны параметры карты (номер, срок действия, CVC2 код)
  • Карта заблокирована, или недействительна, или неактивна
  • Нет действующего номера телефона, который вы указали при обращении в банк
  • Неверно введен СМС-код
  • Неустойчивое интернет-соединение
  • Неустойчивый сигнал сотовой связи
  • Превышено количество одновременно зарегистрированных карточек (максимум 8 разных в одно устройство, 20 устройст, на которые можно зарегестрировать одну карточку)

Проверить, что

  • выполнен вход в iCloud;
  • версия iOS 10 и выше
  • в настройках устройства указан регион «Беларусь»

Если вышеуказанные действия не помогли обратитесь в техническую поддержку Apple

Дизайн карточки на экране отличается от дизайна пластиковой карточки

Ничего страшного. Это не влияет на возможность расплачиваться сервисом Apple Pay.

Что будет с карточкой, если я удалю сервис Apple Pay?

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

Мне не приходит одноразовый пароль, по какой причине?

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

Сколько раз можно неверно ввести пароль для Apple Pay прежде, чем приложение Wallet заблокируется?

В случае, если в течение 3-х раз некорректно считается Touch ID, приложение запрашивает ввод цифрового пароля.

  • еще 5 неверных попыток— 1 минута ожидания
  • еще 5 неверных попыток — 5 минут ожидания

Далее зависит от настроек безопасности устройства.

На какой номер телефона приходит одноразовый пароль при регистрации сервиса Apple Pay

На номер телефона, который вы указали при обращении в банк.

Есть ли ограничения по суммам оплаты?

Все аналогично карте, на которую зарегестирован сервис Apple Pay.

Если на терминале установлена более поздняя версия программного обеспечения? то операции оплаты свыше 1000 руб. также могут быть совершены без PIN-кода.

Можно ли добавить неименную карточку?

Да, можно, при этом при подключении карточки в Apple Pay на запрос ввода Фамилии и Имени необходимо ввести свои Фамилию и Имя. Токен будет работать со всеми ограничениями, установленными для самой Карточки.

Есть ли у Apple Pay доступ к банковскому счету?

Нет, у Apple Pay не доступа ни к данным карточки, ни к банковскому счету Карточки. Apple Pay не знает остатка средств на карточке.

Могу ли я использовать Apple Pay за границей?

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

Можно ли произвести оплату с помощью Apple Pay, если смартфон выключен / полностью разряжен?

Нет, это невозможно.

Какой PIN-код запрашивается при оплате покупок?

При оплате товаров и услуг телефоном запрашивается Touch ID (отпечаток пальца), Face ID (сканер лица) или пароль для смартфона. ПИН-код пластиковой карточки может быть запрошен терминалом торговой точки.

Что будет с сервисом Apple Pay при перевыпуске карточки?

Карточка будет удалена из Apple Wallet и Вам потребуется добавить в него выпущенную карточку.

Что делать, если я потерял свой телефон с зарегистрированным сервисом Apple Pay?

При использовании Apple Pay необходимо подтверждать каждую покупку с помощью Face ID, Touch ID или пароля. Такие функции помогают предотвратить доступ других пользователей к Apple Pay на устройстве iPhone, iPad, Apple Watch или компьютере Mac.

В случае потери смартфона нужно перейти на страницу http://www.icloud.com или использовать программу «Найти iPhone». Сервис позволяет полностью удалить токены с IPhone, даже если устройство находится в автономном режиме и не подключено к сотовой сети или сети Wi-Fi.

Вы также можете заблокировать карточку зарегестрированную в сервисе, обратившись в Банк.

Что делать с сервисом Apple Pay, если привязанная карточка была утеряна?

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

Можно ли использовать чехлы при оплате через Apple Pay?

При использовании фирменных чехлов Apple можно производить оплату через Apple Pay. Однако о чехлах сторонних производителей данной информации нет.

Что будет с данными Apple Pay, есть передать телефон в сервис?

Данные Apple Pay зашифрован, и доступ к ним нельзя получить путем физического вскрытия устройства. Тем не менее, рекомендуем предварительно удалить Ваши данные с устройства, перед его передачей третьим лицам.

Сколько стоит подключение Apple Pay?

Подключение Apple Pay абсолютно бесплатно. Оплачиваетсмя только непосредственно сама карточка (комиссия за выпуск, обслуживание, и т.п.), которая привязана к кошельку Apple Wallet. Никаких дополнительных комиссий не взимается.

Насколько безопасна оплата товаров и услуг с использованием Apple Pay?

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

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

Adblock
detector