Pull to refresh

Криптовалюта и интернет-магазин. История подлючения и немного 54-ФЗ

Здравствуйте, дорогие хабрачитатели!

Появилась недавно задача подключить к одному интернет-магазину оплату криптовалютой. Причем не только популярными биткоинами, но и такими валютами, о которых мне раньше и слышать не приходилось. Реализовывать полноценный функционал взаимодействия с каждой криптовалютой отдельно, задача не из простых. Если для того же биткоина есть библиотеки, позволяющие начать работу практически из коробки (но без допиливания и танцев с бубном, как показывает практика, не обходится), то, например, для dogecoin нужно писать все с нуля. Так как данный вид оплаты для сайта не предполагался как основной, а скорее как фишка для рекламы и раскрутки, то и бюджет не предполагал крупной разработки. Было принято решение посмотреть в сторону агрегаторов. Остановились на сервисе Cryptonator. Ни в коем случае не рекламирую данный сервис, но по соотношению качества и простоты API к сумме комиссий за обработку платежей, он показался наиболее подходящим. К тому же вывод средств магазином предполагался в рублях, а не в валюте, которой оплатили заказ. Выбор остановили на 7 валютах из предлагаемых 15-ти.

Итак, что мы имели на старте разработки. Интернет-магазин на Drupal 7 Commerce (не спрашивайте, откуда такое чудо, так исторически сложилось) и REST-сервис криптонатора. Вот их нам и нужно было подружить. Механизм взаимодействия предполагался следующий:

  • Покупатель собирает корзину заказа, итоговая сумма формируется в рублях;
  • На странице оплаты выбирается «Криптовалюта» и в списке отмечается подходящая валюта;
  • Из криптонатора через API запрашивается обменный курс и пользователю выводится сумма заказа в выбранной криптовалюте;
  • После подтверждения пользователь перенаправляется на страницу оплаты криптонатора;
  • В случае успешной оплаты (проверка через нотификацию и опрос сервиса) переводим заказ в обработку.

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

Кажется, что все просто. Но простота разбилась о нововведения в 54-ФЗ с июля 2017 года. Про это уже много слов было сказано на разных площадках, но если вкратце, для тех, кто пропустил или далек от темы интернет-коммерции: после оплаты в интернет-магазине, покупатель должен получить чек, а данные о покупке автоматом отправляются в налоговую инспекцию. В случае нарушения юридическим лицам грозят серьезные штрафы.

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

Тут начинается второй этап внедрения оплаты криптовалютой. К слову, сам магазин подключен к онлайн-кассе, которая и выполняет необходимые операции: чек и уведомление налоговой о покупке. Установленный модуль оплаты на сайте – от известного банка, где юридическое лицо (владелец магазина) имеет счет. Для интеграции криптовалют в 54-ФЗ, пришлось модернизировать этот самый друпаловский модуль приема платежей. А именно добавить функцию рекуррентных платежей. Как убедить банк подключить данную функцию к личному кабинету юридического лица – тема для отдельной большой истории. В итоге, пройдя все проверки, получилось привязать одну электронную карту для совершения платежей в автоматическом режиме. Схема оплаты криптовалюты пополнилась следующими шагами:

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

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

Если кому-то интересны технические подробности по реализации, готов ответить на вопросы.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.