Доставка Почтой России и интеграция Онлайн кассы от Атолл

InstantCMS 2.X
#1 25 сентября 2018 в 19:16
Приветствую.

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

Собственно вопрос — это кому-нибудь интересно?

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

Это должны быть разные компоненты:

1. Интеграция с почтой России
2. Пробитие чеков на онлайн кассе Атолл
3. Оплата через шлюз Сбербанка (не знаю, может в Биллинге это и реализовано — но для проекта нет смысла в Биллинге)
#2 25 сентября 2018 в 20:03
Потенциально это нужные вещи, несколько раз могло понадобиться, но каждый раз несросталось.
Но врятли кто то сидит и ждет пока это появится, каждый решает проблемы по мере их возникновения и теми средствами и возможностями которые есть под рукой, если у инстанта такая возможность появится, то могут выбирать ваше решение… как то так, сугубо моё мнение.

А по существу,
1. вопросов нет, это гуд тема
2. вот тут не совсем понятно как это может существовать отдельно например от пункта 3. Ведь перед тем как пробить чек нужно что то и как то продать.
3. Как бы Герман не старался, а сбер в рф ещё долго будет доминировать, поэтому может быть весьма востребовано, но только естественно с интеграцией с кассами… Кстати шлюз сбербанка может использоваться для гугл пей, которая в свою очередь теперь не только для мобильных приложений доступна, но для сайтов; просто мысли…
#3 25 сентября 2018 в 20:11

2. вот тут не совсем понятно как это может существовать отдельно например от пункта 3.

Александр

Да вполне может и отдельно существовать. Оплата может быть и через любой другой шлюз (в Биллинге их подключено много, например Робокасса или Яндекс.Деньги, или Вебмани...). Может быть у кого-то уже есть варианты приема оплаты, но нет именно пробития чеков на онлайн кассе.

Но врятли кто то сидит и ждет пока это появится, каждый решает проблемы по мере их возникновения и теми средствами и возможностями которые есть под рукой,

Александр
Согласен, у меня вопрос в другом — мне нужно в достаточно сжатые сроки реализовать это на проекте, потому что у них это должно работать еще "вчера". Но, может быть, мне проще сначала сделать все для них (написать, отладить и запустить в работу), а потом уже неспеша, при наличии времени и в свободной обстановке подготовить универсальный компонент…
#4 26 сентября 2018 в 03:40
@SmartControl, согласно 54-ФЗ, с 1 июля 2017 года все интернет-магазины, которые принимают оплату банковскими картами, наличными или электронными деньгами, обязаны использовать онлайн-кассы.

В момент оплаты интернет-магазин должен выдавать покупателю бумажный или электронный чек. Для отправки электронного чека нужно взять у покупателя номер телефона или e-mail. А копии электронных чеков должны отправляться в ФНС через оператора фискальных данных.

Есть несколько решений для соответствия 54-ФЗ:

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

Аренда онлайн-кассы без ее физического нахождения в офисе. В этом случае электронные чеки формируются автоматически и отправляются покупателям по sms или на e-mail. Печать бумажного чека в данном случае не нужна.

Решение от Атол.Онлайн и OFD.ru включает в себя аренду кассы и передачу чеков в ФНС в автоматическом режиме. Касса может пробивать несколько чеков в секунду и работает 24/7, что позволяет пробивать чеки сразу после покупки и отправлять их покупателям.
#5 26 сентября 2018 в 03:41
@SmartControl, в том, чтобы печатать чеки на атол (том же 30ф) проблем особых не должно быть. Единственное, "сервер" должен располагаться на рабочем месте оператора =)
#6 26 сентября 2018 в 07:20

@SmartControl, в том, чтобы печатать чеки на атол (том же 30ф) проблем особых не должно быть. Единственное, "сервер" должен располагаться на рабочем месте оператора =)

@IRIPUS

Конечно, сервер будет совсем не на рабочем месте. Он будет в 4 тысячах километров от оператора, а чеки будут печататься через API Атола. Последний абзац вашего коммента как раз про это. Интернет магазин сам формирует чек через API, никаких ограничений на его геолокацию нет.
#7 27 сентября 2018 в 05:45

оплату через шлюз Сбербанка (так для юрлица дешевле выходит, чем через какие-нибудь Робокассы и тд)

@SmartControl
есть готовый класс для оплаты по сберу, API по REST самый простой способ решения.
Другой вопрос если делать как отдельный компонент то к чему привязывать? к контенту чтоб интегрировать в UserCart или просто прием виртуальных денег в биллинг.
Для какой цели он нужен в том проекте??? Можете уточнить?
#8 27 сентября 2018 в 08:53

Для какой цели он нужен в том проекте??? Можете уточнить?

kirkr

Проект, в котором мне это нужно — это интернет магазин с доставкой через Почту России и оплатой онлайн через шлюз Сбербанка, ну и соответственно сразу после оплаты нужно пробивать чек на онлайн кассе Атол (требование законодательства). Почта (вычисление стоимости посылки), Сбер и Атол — это все будет работать через API.

или просто прием виртуальных денег в биллинг.

kirkr
Жесткая привязка к Биллингу точно не нужна. Может быть как один из вариантов использования добавить Биллинг. Но надо чтобы и сама по себе оплата работала, без Биллинга.
#9 27 сентября 2018 в 16:03
Единицы из пользователей кому это нужно здесь на форуме, но это определённо решение для многих магазинов, если сделать рекламу такого компонента для иЦМС мне кажется это приведёт немало народа на эту связку опять же как готового решения. Интересно что и почём у конкурентов если смотреть в сторону готовых решений?
Мне например с нового года наверное тоже придётся покупать онлайн кассу, хотя за нал не продаю… Если уж ставить, то тогда можно было бы и прикрутить к сайту изделия и продавать, правда у меня стёкла и зеркала😊по почте лучше не отправлять :)) Можно было бы интересно менять как-то логистику?
#10 28 сентября 2018 в 09:00
Всем привет! Давненько я здесь не появлялся 😊
Я делал на работе интеграцию с Атол. Скажу прямо. Очень мутная это тема. В рамках одного проекта еще никуда не шло. А в целом, для системы, чтобы работало на всех проектах… Думаю, не просто. Т
В то же время, есть один клиент. На битриксе. У него встала задача подключить онлайн-кассу. Для битрикса есть готовый модуль для интеграции с Атол. Но, возникли трудности с обновлением Битрикса(интегрированный Едост и куча всего...). И тогда ему, кто-то подсказал про online-check.business.ru/. Сорри за ссылку. Это не реклама. К ресурсу отношения не имею. Просто, думаю, что будет полезно многим. Система интегрируется с экваером. Правда, не знаю, как они чеки формируют. Названия товаров же мы не передаем эквайеру. Но, этот клиент внедрил онлайн-чеки, без никаких изменений на сайте.
Подключить Сбербанк-эквайринг не так и сложно. Есть готовые классы в инете. Схема очень проста. Создается заказ в системе сбера, пользователь редиректится на сбер. Там оплата, и после оплаты редирект обратно на сайт, где можно поймать и обработать результаты оплаты.
Ну, как то так 😊
#11 28 сентября 2018 в 13:47

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

Марат
Вы описали схему работы оплаты Сбера по API =)

может кому понадобиться:

  1.  
  2.  
  3. <?php
  4. class CSberbank{
  5. private static $login = "login";
  6. private static $username = "user";
  7. private static $token = "YRF3C5RFICWISEWFR6GJ";
  8.  
  9.  
  10. function getOrderStatus($orderId) {
  11. // https:/server/application_context/rest/getOrderStatus.do? orderId=b8d70aa7-bfb3-4f94-b7bb-aec7273e1fce&language=ru&password=password&userName=userName
  12. $url = "https://3dsec.sberbank.ru/payment/rest/getOrderStatus.do?orderId=".$orderId."&language=ru&token=".$this::$token."";
  13. $ch = curl_init();
  14. curl_setopt($ch, CURLOPT_URL, $url);
  15. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  16. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  17. $response = curl_exec($ch);
  18. curl_close($ch);
  19.  
  20. if( $response ){
  21.  
  22. $response = json_decode($response, true);
  23.  
  24. if( $response['ErrorMessage'] ){
  25.  
  26. if( $response['OrderStatus'] == 2 ){
  27. return "Спасибо, заказ №".$response['OrderNumber']." оплачен.";
  28. } else {
  29. return "Статус заказа: ".$response['ErrorMessage'];
  30. }
  31.  
  32. }
  33.  
  34. }
  35. return false;
  36. }
  37.  
  38. function registerOrder($total, $order, $returnUrl){
  39. $url = "https://3dsec.sberbank.ru/payment/rest/register.do?amount=".intval($total)."00&currency=643&language=ru&orderNumber=".$order."&token=".$this::$token."&returnUrl=".$returnUrl."&returnUrl=".$returnUrl."&pageView=DESKTOP&sessionTimeoutSecs=1200";
  40. echo $url;
  41. $ch = curl_init();
  42. curl_setopt($ch, CURLOPT_URL, $url);
  43. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  44. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  45. $response = curl_exec($ch);
  46. curl_close($ch);
  47.  
  48. if( $response ){
  49.  
  50. $response = json_decode($response, true);
  51.  
  52. if( $response['orderId'] && $response['formUrl'] ){
  53. return 'redirect:'.$response['formUrl'];
  54. }
  55.  
  56. }
  57. return false;
  58. }
  59.  
  60. }
  61. $orderId=$_GET['orderId'];
  62.  
  63. //если прилетело от сбера то выполняем этот код
  64. if($orderId){
  65. $doit=new CSberbank();//инициируем класс иначе ниже не будет работать
  66. $geturlsber=$doit->getOrderStatus($orderId);//Проверяем платеж
  67. echo $geturlsber;
  68. }else{
  69. //если нет от сбера инфы,значит клиент желает оплатить и выполняем код ниже.
  70.  
  71. $doit=new CSberbank();//инициируем класс иначе ниже не будет работать
  72. $total='150';//сумма к оплате
  73. $order='443344';//номер заказа
  74. $returnUrl='https://test.ru/test.php';//ссылку куда возвращать после оплаты c переменной уникального платежа
  75. $geturlsber=$doit->registerOrder($total, $order, $returnUrl);
  76. $geturlsberredirect= str_replace('redirect:','', $geturlsber);//обрезаем ссылку,чтоб отправить редирект
  77. $getidsber= str_replace('redirect:https://3dsec.sberbank.ru/payment/merchants/www.3dsec.sberbank.ru/payment_ru.html?mdOrder=','', $geturlsber);//получаем id уникальный в сбере для проверки платежа в последующем.
  78.  
  79. header('Location: '.$geturlsberredirect.'');
  80. }
  81. ?>
  82.  
  83.  
  84.  
ВНИМАНИЕ!!! В КОДЕ надо добавить проверку переменных!!!

Если автор UserCart не будет против, то можно будет дописать оплату.
#12 28 сентября 2018 в 15:49

Интересно что и почём у конкурентов если смотреть в сторону готовых решений?

IceBreaker
Надо делать анализ рынка… но там дело в том, что надо в самом магазине много дописывать и мне проще делать это на InstantCMS, чем на битриксе или еще на чем-то… Там скорее решения в виде — купил и работай. А если нужно по-другому, то будет дорого и долго.

Я делал на работе интеграцию с Атол. Скажу прямо. Очень мутная это тема.

Марат
У моих ребят 30 оффлайн магазинов — они знают что такое онлайн кассы и что такое Атол. Но вот в интернет магазине оплат пока не было, так что там без вариантов. Атол и всё, ну и сбербанк напрямую) С битриксом у них не сложилось — там 2 года официальные партнеры Битрикса разрабатывали магазин, потом сдулись со словами "на битриксе реализовать такое очень сложно".
#13 28 сентября 2018 в 18:11
Документацию по сбербанку надо?
#14 28 сентября 2018 в 18:21
kirkr, да у меня все вроде есть. И документация, и доступ в личный кабинет. Логин и токен мерчанта…
а сберовская документация на developer.sberbank.ru
#15 22 октября 2018 в 07:44


Единицы из пользователей кому это нужно здесь на форуме, но это определённо решение для многих магазинов, если сделать рекламу такого компонента для иЦМС мне кажется это приведёт немало народа на эту связку опять же как готового решения. Интересно что и почём у конкурентов если смотреть в сторону готовых решений?
Мне например с нового года наверное тоже придётся покупать онлайн кассу, хотя за нал не продаю… Если уж ставить, то тогда можно было бы и прикрутить к сайту изделия и продавать, правда у меня стёкла и зеркала😊по почте лучше не отправлять :)) Можно было бы интересно менять как-то логистику?

IceBreaker

А мне тоже это интересно! Вот если бы можно было сделать не только Атол-онлайн, а возможность подключать свою онлайн-кассу. Сейчас просто отправляю чек на эл.почту после оплаты, а вот если б сделать, чтоб он в автомате отправлялся при оплате на сайте.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.