Android POS принимает Google Pay через NFC и чип

У меня есть Android-киоск POS, который я продаю своим клиентам для приема платежей. Для приема платежей к Android-киоску подключается USB-считыватель карт с магнитным считыванием (у него есть USB-порт), и при считывании, как только поступает ввод с клавиатуры, прослушивающая активность анализирует его и извлекает необходимую информацию о карте. Затем мы получаем токен для карты от Stripe и также заряжаем их через Stripe. Это работает довольно хорошо с тех пор, как мы выпустили его.

Однако возникла новая потребность. Это необходимость принимать EMV и Google/Samsung/Apple Pay + любые платежи NFC в будущем. Я только что купил еще один USB-кардридер из Китая, который принимает чип + NFC + считывание. Я знаю, как обращаться с частью считывания, так как это то же самое, что я делал с однофункциональными считывателями карт, которые мы используем в настоящее время в полевых условиях.

Однако я не знаю, как принимать чип и особенно платежи NFC. У меня на телефоне установлен Google Pay, и всякий раз, когда я подношу его к этому новому устройству чтения карт, он издает звуковой сигнал и печатает (это считается клавиатурой, хотя это не так) 8-значный номер. Итак, я знаю, что он обнаруживает это и все такое и генерирует какое-то число, но я понятия не имею, что это число означает. Я думал, что он должен был дать мне номер карты, и весь путь магнитного считывания дает мне треки. То же самое для части EMV... однако, с частью EMV устройства для чтения карт, похоже, он даже не получает никаких входных данных.

Я надеюсь, что кто-то имеет опыт работы с этим типом устройства с Android и может помочь мне.

Документация SDK, которую я получил вместе с устройством

Изображение нового устройства


person qazimusab    schedule 07.07.2018    source источник
comment
Просто убедитесь, что вы прочитали эту страницу: developers.google.com/web/fundamentals/ платежи/android-pay   -  person Morrison Chang    schedule 07.07.2018
comment
Да. Хотя это не относится к моему вопросу.   -  person qazimusab    schedule 08.07.2018


Ответы (2)


Номер, который вы получаете на своем считывателе, не является номером карты (PAN) — это токен (иногда называемый DPAN), который представляет вашу карту, но не совпадает с номером карты.

Из Справки Google Pay Merchant — Как работают платежи (выделено мной):

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

[...]

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

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

person fstanis    schedule 08.07.2018
comment
Я тоже думал, что это будет токенизированная карта... Однако каждый раз это один и тот же токен. Даже когда я переключаю машины с Google Pay. Кроме того, я попробовал свою кредитную карту Hilton со встроенным nfc, и она каждый раз дает один и тот же номер. Я очень сомневаюсь, что это было бы одинаково каждый раз даже для одной и той же карты, если бы она была токенизирована. Я думаю, что он считывает серийный номер или что-то вроде карты, потому что я загрузил на свой телефон какое-то случайное приложение, которое утверждает, что читает карты nfc, и номер, который получало устройство, это приложение сказало, что это был серийный номер ... - person qazimusab; 08.07.2018
comment
Я думаю, что ваш ридер неправильно следует спецификации EMVCo для бесконтактных платежей. Но даже если бы это было так, то, что вы пытаетесь сделать (считывание номера карты, чтобы затем ввести его в форму онлайн-платежа), просто невозможно по дизайну с токенами. - person fstanis; 08.07.2018
comment
Тогда как я могу принять Google/Samsung/Apple pay на Android через касание и оплату? - person qazimusab; 09.07.2018
comment
Вы, вероятно, захотите получить настоящий терминал для кредитных карт, который может принимать и обрабатывать бесконтактные платежи. Использование только считывателя NFC недостаточно. Многие современные терминалы кредитных карт могут подключаться к устройству Android (обычно через Bluetooth), поэтому вы, вероятно, можете получить один из них, если хотите сохранить свое текущее решение. - person fstanis; 09.07.2018
comment
Хм... Можете порекомендовать такое устройство, которое подключается к Android. - person qazimusab; 09.07.2018
comment
Я бы не стал упоминать здесь какую-либо конкретную марку, но если вы погуглите терминал для кредитных карт Android или пункт продажи Android, вариантов должно быть много. - person fstanis; 09.07.2018

Я реализовал платформу платежей EMV с открытым исходным кодом (https://github.com/vicente-da-silva/dcemv). Это реализует как бесконтактные, так и контактные ядра EMV. Существуют различные драйверы NFC. Он работает на Android. Вы можете использовать это для транзакций EMV, где PAN карты токенизирован или нет, но для токенизированных карт через HCE банк/эквайрер, с которым вы имеете дело, должен будет интегрироваться с Samsung/Apple/Google Pay, чтобы передать им токен и переведите его обратно в исходный PAN.

person aquamoon    schedule 12.07.2018