#credit-card #kiosk #cardreader
#кредитная карта #киоск #устройство для чтения карт
Вопрос:
Мне нужно разработать систему киоска. Единственным способом оплаты будет кредитная / дебетовая карта. Киоск необходимо подключить к сети с другим компьютером. Например, если клиент что-то заказывает в киоске, это нужно отправить на другой компьютер, где сотрудник магазина сможет увидеть, что было заказано.
Вот мои следующие решения:
ВАРИАНТ 1) веб-приложение
Используйте FLASH, ASP.net или JAVA для пользовательского интерфейса?
Если я выберу этот маршрут, как я смогу связаться со считывателем кредитных / дебетовых карт? Считывающее устройство будет установлено в киоске, но программное обеспечение киоска будет размещено в Интернете. Нужно ли мне создавать безопасное соединение для связи со считывателем?
ВАРИАНТ 2) создайте приложение в киоске
Используйте FLASH, JAVA, уровень представления Windows with.net ?
Как я могу связаться со считывателями карт?
Какой вариант является лучшим? 1 или 2? JAVA, FLASH? WINDOWs .net? Как насчет Linux? Легко ли разрабатывать точки доступа для киоска?
Спасибо за вашу помощь.
Ответ №1:
Говоря как человек, который действительно внедрил Flash-приложение, предназначенное для среды киоска, я бы настоятельно рекомендовал не использовать его по следующим причинам:
-
Управление памятью недостаточно хорошо, чтобы оставлять запущенное приложение без присмотра на несколько дней / недель подряд. Произойдет утечка памяти, и в конечном итоге вам придется перезапустить ее. Просто загуглите «Утечку флэш-памяти», чтобы получить представление о том, сколько с этим связано проблем. Предположительно, они улучшили управление памятью в самых последних версиях, но, честно говоря, Flash в основном ориентирован на браузер, где пользователи закрывают вкладку / окно Flash после взаимодействия с ним в течение нескольких минут, поэтому они не потратили много времени на оптимизацию использования памяти.
-
Обработка ошибок недостаточно надежна для работы в расширенной рабочей среде. Если ваше приложение по какой-либо причине выдает ошибку, проигрыватель практически полностью остановится, пока вы его не перезапустите. Запись в журналы ошибок также сложнее, чем должна быть, из-за (3).
-
Вы изолированы в среде Flash и не можете напрямую обращаться к таким устройствам, как устройства чтения карт или другие внешние устройства, или выполнять запись в систему. Использование AIR может помочь вам получить доступ к файловой системе, но не более того. Если вы хотите получить доступ к внешним устройствам, вам придется написать прокси, который находится на клиенте и отправляет соответствующие данные на Flash через сокет. Если вы все-таки решите использовать сокеты для связи со своим клиентом Flash, будьте готовы рвать на себе волосы, разбираясь в политиках безопасности Flash Player.
По сути, Flash был создан для совершенно иной среды, чем киоск, и поэтому не очень хорошо подходит для этой задачи. Я бы также рекомендовал избегать использования веб-интерфейса из-за тех же трудностей, связанных с доступом к аппаратным устройствам. О, и, ради всего святого, не запускайте Flash в Linux. Linux Flash Player отстает от версии Windows на 234234 мили и доставит вам огромную головную боль.
Что касается взаимодействия с устройством чтения карт, обычно вы подключаетесь к устройству чтения карт через USB, и устройство чтения карт может быть переведено в режим «клиновидной клавиатуры» или режим HID. В режиме клавиатуры устройство чтения карт считывает свайп карты и выводит текстовую строку, содержащую содержимое свайпа, как если бы это была клавиатура, и вам нужно проанализировать эту строку, чтобы получить нужные данные. Режим HID немного чище, и вы взаимодействуете с ним, считывая данные с USB-устройства.
Из перечисленных вами вариантов лучшим (к сожалению), вероятно, является написание какого-нибудь приложения на Java или .NET, которое может работать в режиме 24/7. Если вам нужен доступ к принтерам или другим аппаратным устройствам (например, для автоматической печати квитанции), то Java и .NET имеют очень хорошую поддержку стандарта OPOS, который является стандартным интерфейсом для взаимодействия с принтерами чеков. Что касается Linux и Windows, я видел, как оба успешно использовались.
Кстати, если ваше приложение обрабатывает данные кредитной карты, не забывайте о соответствии PCI :).
Ответ №2:
Используйте веб-приложение и напишите пользовательский интерфейс на HTML5.
Что касается программного обеспечения в киоске, я рекомендую Webconverger. Отказ от ответственности: Я основатель этого проекта с открытым исходным кодом.
Вам следует приобрести независимое платежное устройство и сопоставлять квитанции вручную.