- PVSM.RU - https://www.pvsm.ru -
Всем привет!
Типичный процесс оплаты реально существующего заказа, который я недавно забирал:
(У продавца/в интернет-магазине я запросил №Z и предоставил все что нужно для персональной цены.)
— Привет. Хочу оплатить и забрать заказ №Z. — говорит Клиент и подходит к продавцу.
— Минутку. — говорит продавец. Продавец открывает систему интернет-магазина, копирует данные и печатает листочек. — Теперь в кассу и потом назад ко мне.
Клиент идет к кассе, любуясь ассортиментом магазина.
— День добрый, что оплачиваем, сумма? — запрашивает кассир из кассы.
— Вот, по этим документам — отвечает клиент.
— Секундочку. — говорит кассир. Кассир и касса просят помощи у платежного терминала и принтера, — «Платежный терминал — помоги провести оплату.»
— Уважаемый Клиент, предоставьте карточку и пин. — платежный терминал, показавшись из окошка.
Клиент предоставил все, что просил терминал.
— Касса все OK, деньги заблокированы. — платежный терминал отсчитался перед кассой.
— Эй принтер, напечатай чек! — запросила Касса, нужно отдать Клиенту.
— Вот чек, спасибо за оплату. — вежливо ответил Кассир из кассы.
Клиент идет к продавцу.
— Вот, все оплачено, где мой долгожданный товар? — спросил Клиент.
В истории дальше я получил товар и сопутствующие гарантии, но можно же было не гонять меня по залу.
Так вот, чего же не хватает для выхода в оффлайн Интернет-магазинам, и наоборот, из оффлайна в онлайн.
Один интернет-магазин, с небольшим складом, переехал на первый этаж. Меня попросили посмотреть какое решение подойдет для приема оплаты оффлайн. Задача, казалось бы, тривиальная. Но все расчеты «цен» и «остатков» должны идти через систему интернет-магазина, иначе это долгий и дорогой круговорот.
Итак, у нас есть системы, как актеры в диалоге:
Клиент — владелец карточки.
Продавец — тот-кто имеет права на пользование системой интернет-магазина.
Интернет-магазин — знает все о заказе и может кому-то передать эти данные.
Платежный терминал — Принимает карточку клиента.
Принтер — Печатает чек клиенту.
Касса и кассир — Передает данные терминалу, принтеру и что-то еще полезное.
Очевидным решением оказался mPOS c приложением/API на планшет.
Все шаги аналогичны, только вместо клиента с документами бегает по магазину продавец и подносит терминал, вернее его верный мобильный помощник.
У Продавца в браузере формируется ссылка для работы с Кассой.
kassа-api://payNow?callback=[ecommerce-system-url?{параметры ответа*}]&order={парамеры заказа}
Касса моментально, тут-же передает данные приложению терминала оплаты:
pay-api://payNow?callback=[kassа-api://paymentResult?{параметры ответа*}]&order={парамеры заказа}
Клиент оплачивает заказ через Платежный Терминал.
Платежный Терминал возвращает управление Кассе:
kassа-api://paymentResult?{параметры ответа*}
Касса, тут-же передает данные принтеру на оплату:
print-api://payNow?callback=[kassа-api://paymentResult?{параметры ответа*}]&order={парамеры заказа}
Принтер напечатал чек, сделал еще что-то и вернул управление Кассе:
ecommerce-system-url?{параметры ответа*}
* среди параметров могут быть средства безопасности
Все уже давно придумано, называется это custom scheme.
Это элемент который был заложен в сам URI (Универсальный Ресурс Идентификатор).
Все мы привыкли к http://, https://, ftp://, sftp:// и другим. Это уже реализовано в популярных платформах.
myapp://path-to-file где myapp это та самая cхема.
Для iOS [1]
Для Android [2]
Берем Paypal Here и совместимый принтер.
Он предоставляет нужное API [3].
Благо, приложение PayPal Here умеет печатать чеки на bluetooth принтере.
Все в одном: Касса, терминал и принтер.
За недельку прикрутили нужное API в админке и запустили это дело на iPad. Все замечательно.
Да, это тот самый терминал [4], которым в России мы пользоваться не можем.
Я не нашел ни одного решения, которое бы полностью могло решить вопрос так, как это удалось для магазина в США.
Позволю себе предположить следующее:
Пожалуйста: Atol, Эвтор, Модуль Касса, Yandex.Kassa, 2Can, все кто перечислены в статье [5], «Касса, которую я не знаю», добавьте в свое приложение Custom Scheme API.
Если кто-то знает решения для суровой реальности, буду рад сотрудничеству. Делитесь своими наблюдениями ниже в комментариях.
Автор: Кирилл Морозов
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mobil-ny-e-prilozheniya/277955
Ссылки в тексте:
[1] Для iOS: https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html
[2] Для Android: https://stackoverflow.com/questions/2448213/how-to-implement-my-very-own-uri-scheme-on-android
[3] нужное API: https://github.com/paypal/here-sideloader-api-samples/blob/master/docs/README.md
[4] тот самый терминал: https://habrahabr.ru/post/140166/
[5] статье: https://habrahabr.ru/post/191196/
[6] Источник: https://habrahabr.ru/post/353602/?utm_source=habrahabr&utm_medium=rss&utm_campaign=353602
Нажмите здесь для печати.