Шрифт
Virtuemart - интернет-магазин на Joomla. Часть 17. Подключение оплаты через ROBOKASSA.
Play

Virtuemart - интернет-магазин на Joomla. Часть 17. Подключение оплаты через ROBOKASSA.

Одной из важнейших составляющих интернет-магазина является оплата покупаемых товаров. Все вопросы, касающиеся денег, требуют особого внимания. Большим минусом VirtueMart является то, что все предустановленные системы оплаты ориентированны на Запад и отечественные системы приходится устанавливать и настраивать вручную. Настройка систем оплаты, в отличие от настройки самого магазина, не так проста. В большинстве случаев требуются дополнительные модули оплаты (файлы, настроенные на взаимодействие с той или иной системой). К счастью, VirtueMart получил широкое распространение и у нас. Поэтому появились некоторые готовые решения для работы с отечественными системами оплаты.

Сегодня я расскажу о том, что такое ROBOKASSA и как ее подключить к VirtueMart в автоматическом и полуавтоматическом режиме.

Еще одной сложностью при работе с системами интернет-оплаты является их многообразие. Если особо не задумываться, то можно назвать сразу несколько очень известных систем: Webmoney, Яндекс.Деньги, rbkmoney, SMS-оплата, оплата через терминалы, банковский перевод, и.т.д. Поскольку конкуренция на рынке велика и постоянно увеличивается, владелец магазина заинтересован в том, чтобы подключить как можно больше способов оплаты (ведь разным покупателям удобно платить через разные системы, а кто-то и вообще может отказаться от покупки, если удобной для него системы не будет в магазине). На этом этапе начинаются сложности как у web-мастера, который делает магазин, так и у заказчика. Web-мастеру приходится подключать множество систем оплаты у каждой их которых свой собственный интерфейс, а заказчику – оформлять документы и улаживать юридические вопросы с каждой из систем, что, поверьте, тоже далеко не просто. Все это существенно замедляет и усложняет процесс разработки интернет-магазина.

Многие это понимали и среди них нашлись предприимчивые люди, которые придумали как решить вышеописанную проблему и при этом заработать. Одна из систем, предоставляющих подобные услуги – ROBOKASSA.

Что такое ROBOKASSA? Это что-то вроде посредника между платежными системами и интернет-магазинами. ROBOKASSA берет на себя все сложности, связанные с оформлением документов и подключением платежных систем. Таким образом, web-мастеру требуется подключить к интернет-магазину всего одну систему оплаты – ROBOKASSA, а заказчику оформить отношение всего с одной стороной – ROBOKASSA. При этом интернет-магазин получает возможность принимать оплату через все платежные системы, подключенные к робокассе, коих очень много. А владельцу магазина уже не нужно беспокоиться о безопасности, т.к. все денежные операции проводятся на сайте ROBOKASSA, т.к. интернет-магазин только отправляет запрос на оплату и получает ответ об успешном или неудачном процессе оплаты.

Комиссия ROBOKASSA составляет

5% от размера платежа (стоимости покупки). Это достаточно много, но допустимо. Особенно для небольших интернет-магазинов. Но при этом можно избавиться от многих проблем, описанных выше. Поэтому ROBOKASSA стала довольно популярной системой. Подключение ROBOKASSA к VirtueMart рассмотрим далее.

Многие модули подключения VirtueMart к ROBOKASSA продаются за деньги. Стоимость составляет порядка 600-1000руб. Если для вас это не деньги, то можно и купить такой модуль, получив при этом тех. поддержку разработчика. Если лишнюю тысячу рублей тратить не хочется, предлагаю вашему вниманию два бесплатных способа подключения VirtueMart к ROBOKASSA: полуавтоматический и автоматический.

Подключение к VirtueMart оплаты через ROBOKASSA. Полуавтоматический режим.

Способ подключения VirtueMart к ROBOKASSA в полуавтоматическом режиме прост как две копейки, но имеет один существенный недостаток – после оплаты заказа покупателем статус товара не изменяется на «Оплачен» автоматически. Его должен изменить администратор магазина (после оплаты администратору магазина приходит на e-mail письмо от ROBOKASSA, что произведена оплата заказа с порядковым номером N. После этого администратор должен зайти в управление заказами, найти заказ N и изменить его статус на «Оплачен»). С одной стороны этот режим хорош тем, что все операции, связанные с деньгами и товаром, контролируются человеком, что, в целом, исключает возможность ошибки. С другой стороны довольно неудобно постоянно менять статусы вручную. К тому же это нужно делать довольно оперативно, т.к. до смены статуса покупателю не придет письмо о подтверждении оплаты и он может не понять прошла оплата удачно или нет.

Использовать этот способ или автоматический, каждый решит для себя сам, а я опишу как его подключить.

В VirtueMart перейдем в «Магазин» –> «Способы оплаты». После чего появится список с доступными способами оплаты.

Отключим все ненужные способы, кликая по зеленым галочкам в соответствующих строках списка.

После того, как ненужные способы оплаты отключены, добавим новый способ, кликнув по кнопке «Новый», которая находится над списком. Появится форма добавления способа оплаты, показанная на следующем рисунке:

Заполняем ее следующим образом:

  • Название способа оплаты: ROBOKASSA
  • Код: ROBO
  • Класс имени платежа: ps_payment
  • Способ оплаты: HTML-форма (например, для PayPal)
  • Группа покупателей: default

Далее – по желанию.

После этого переходим на вкладку «Настройки» (смотрите самый верх заполняемой формы) и в поле «Дополнительная информация по платежу» вводим следующий код:

После этого сохраняем внесенные настройки. Все. Модуль оплаты через ROBOKASSA в полуавтоматическом режиме установлен.

Хочу заметить, что все будет работать корректно только после активации аккаунта в ROBOKASSA.

Подключение к VirtueMart оплаты через ROBOKASSA. Автоматический режим.

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

При настройке модуля нам понадобятся следующие данные:

  • Пароль #1: пароль №1 в личном кабинете ROBOKASSA
  • Пароль #2: пароль №2 в личном кабинете ROBOKASSA

При настройке ROBOKASSA следующие:

  • Result URL: http://domen.ru/administrator/components/com_virtuemart/notify_rk.php
  • Success URL: http://domen.ru/administrator/components/com_virtuemart/succes_rk.php
  • Fail URL:http://domen.ru/administrator/components/com_virtuemart/succes_rk.php
  • Метод отсылки данных по Result URL: POST
  • Метод отсылки данных по Success URL: POST
  • Метод отсылки данных по Fail URL: POST

Естественно, вместо «domen.ru» нужно подставить доменное имя вашего сайта.

Форма с заполняемыми данными показана на рисунке (раздел «Администрирование»)

После настройки аккаунта ROBOKASSA нужно внести данные для авторизации в файлы модуля:

  • notify_rk.php: пароль #2 в 3 и 260 строке
  • succes_rk.php: пароль #1 в 4 строке и доменное имя в 28 строке
  • ps_rk_out.php: логин и пароль #1 в 24 и 25 строках

После того, как файлы отредактированы, их нужно добавить на сайт в соответствующие папки(можно просто скопировать папку Administrator в корень сайта. Файлы попадут на нужные места). Далее переходим к настройке модуля в VirtueMart.

Для настройки модуля переходим к списку модулей оплаты «Магазин» –> «Способы оплаты» и добавляем новый модуль. Форму заполняем следующим образом:

  • Название способа оплаты: ROBOKASSA
  • Код: rk
  • Класс имени платежа: ps_robokassa (появится после добавления файлов модуля на сайт)
  • Способ оплаты: HTML-форма (например, для PayPal)
  • Группа покупателей: default

Далее – по желанию.

После этого переходим на вкладку «Настройки» (смотрите самый верх заполняемой формы), заполняем появившиеся поля и в поле «Дополнительная информация по платежу» вводим следующий код:

На этом настройка закончена. Остается только все проверить и протестировать оплату. Все будет работать корректно только после активации аккаунта в ROBOKASSA.

Дополнительно: Да, кстати, думаю, что вас порадует полезная информация по CMS Joomla!, а также Drupal и Wordpress, которую вы найдете на блоге коллеги по цеху. Блог так и называется -- <<Вебмастеру посвящается. >>

Другие статьи серии Добавить комментарий Комментарии

Спасибо большое, но нужно исправить ошибки в коде. стр. 173, 174$rk_post_7= $_POST['inv_id']; //$_POST[inv_id]; $rk_post_10=$_POST['crc']; //$_POST[crc];

стр. 330echo "OK$inv_id"; //"OK$_POST[inv_id]\n";

Спасибо большое автору за материалы по virtue mart. ;)

Спасибо большое, но нужно исправить ошибки в коде. стр. 173, 174$rk_post_7= $_POST['inv_id']; //$_POST[inv_id]; $rk_post_10=$_POST['crc']; //$_POST[crc];

стр. 330echo "OK$inv_id"; //"OK$_POST[inv_id]\n";

Присоединяюсь к вопросу: это изменение имеет особый смысл или можно оставить так как есть в коде автора?

И если имеет смысл, то что оно даёт?Заранее спасибо за ответы. )

Настраиваю автоматическую версию. Никак не избавиться от ошибки: Notice: Undefined index: ROBOKASSA_PENDING_STATUS in /home/u28032/xxxxxx.xx/www/administrator/components/com_virtuemart/classes/payment/ps_robokassa.php on line 127

В чем ошибку искать?

Я не совсем понял вот какой момент - модуль вообще не будет работать до активации аккаунта?

При тестовой покупке выводится сообщение "пользователь не активирован на Робокассе". А если меняю адрес сервера в файле ps_rk_out на тестовый, вообще никакого сообщения не выводится.

добрый вечер. А разве Success URL: http://domen.ru/administrator/components/com_virtuemart/succes_rk.php

это должна быть ссылка на одну и ту же страницу .

Доброго времени суток.

Использую данный модуль, спасибо большое автору.

Но есть единственная проблема, подтверждение почему-то оправляется не на e-mail пользователя, сделавшего заказ, а на webmaster joomlart.com , ( шаблон также от joomlart.com). Подскажите пожалуйста в чем может быть проблема и как её можно решить.

установил Модуль оплаты ROBOKASSA, при попытке совершения платежа прогружается страница с выбором системы оплаты (как видно на скрине) и после этого платёж уходит в космос, т.е. деньги не снимаются (вообще нет никаких признаков обращения к платежным системам) и в робокассе нет никаких сообщений о прохождении платежей. что может быть и как это вылечить?

следовал всем инструкциям указаным на сайте, но у меня получается следующее, после вот этого шага в оплате, загружается шаг с подтверждением своего заказа. после подтверждения заказ выдаёт что он принят и никаких полей для оплаты или новых страниц/окон не загружается. получается что заказ уходит в космос

ЗЫ: я к сожалению распологаю малым временем для решения данной проблемы, по этому я буду признателен если вы предоставите мне возможность решить проблему с вашей помощью в режими реального времени.

По поводу отправки сообщений. С настройкой разобрался, настроил через PHP mail function, до этого не работала вся отправка сообщений вообще, а сейчас сообщения отправляет нормально. Только при подтверждении заказа все равно отправляет подтверждающее сообщение (у администратора на webmaster joomlaart.com ), а удругих пользователей на вымышленные адрес типа nh nh.hong

Подскажите пожалуйста где еще может быть проблема, спасибо.

Собственно вопрос:Когда должна появиться форма с выбором вида оплаты? Иду в оформлении заказа по шагам, адрес - вид доставки - оплата (тут выбираю робокассу) дальше итоговая страница подтвердить заказ, подтверждаю и тут выводится надпись, что аккаунт мой на робокассе не активен. Никакой формы выбора. Если я активирую свой аккаунт то форма выбора появиться как и положено?

До активации просто хотелось бы поинтересоваться у людей которые уже используют модуль - сначала идет подтверждение заказа, а потом уже человек выбирает вид оплаты и оплачивает?

и потом я так понимаю выбрав полу автоматический способ описанный здесь я должен сам отследить заказ? так?а при автоматическом, заказу на сайте в случае корректной оплаты будет присвоен статус оплачен автоматически?

спасибо за оперативный ответ

Игорь, проверьте, что:

– Класс имени платежа: ps_robokassa (появится после добавления файлов модуля на сайт)

– Способ оплаты: HTML-форма (например, для PayPal)

- в поле «Дополнительная информация по платежу» следующий код://php require_once( CLASSPATH. 'payment/ps_rk_out.php' )//(правильный код см. в конце статьи).

Активировать надо обязательно.а то что я про изменения в коде писал - так это для того, чтобы можно было посмотреть как процедура оплаты через робокассу может выглядеть.

Принцип работы тестового сервера Робокассы я так и не понял, поэтому выложил пример для полуавтоматичекой оплаты.

приветВсё настраивал в автоматическом и полуавтоматическом режиме в соответствии с описанием. К сожалению ничего не сработало.

В частности на сайт робокассы переход осуществлен не был. А в письмах также не было никаких ссылок на робокассу.

Oleg, в конце не производится автоматический переход на сайт робокассы, а появляется форма робокассы с выбором способа оплаты, а уже после выбора способа и клика "Оплатить" покупатель переходит на сайт робокассы.

Эта форма появляется на странице, которая загружается после клика по кнопке "Подтвердить заказ".

Подскажите пожалуйста. На странице оплаты робокассы пишутся вот такие ошибки:Notice: Use of undefined constant LMI_PAYMENT_DESC - assumed 'LMI_PAYMENT_DESC' in /home/sovmod/public_html/administrator/components/com_virtuemart/classes/payment/ps_rk_out.php on line 7

Notice: Undefined variable: culture in /home/sovmod/public_html/administrator/components/com_virtuemart/classes/payment/ps_rk_out.php on line 59

кто нибудь поборол?

Аналогичная проблема, прошу помощи в разрешении данной проблемы

Дело не в модуле. Я так понимаю дело в самой робокассе. Когда установил все работало нормально. Позже появилось сообщение Пишет что "Не удалось установить связь с магазином для передачи ему информации об оплате. Через минуту будет произведена повторная попытка"Когда срабатывало через минуту когда нет, в итоге ушел на другую платежную систему. Куда писать не буду чтобы не сочли за рекламу.

На новом сайте у меня возникла проблема с отправкой подтверждаемого письма.

"Подтверждающее письмо было выслано по адресу:" далее не какого адреса, и письмо не куда не отправляется.

Буду очень благодарен вам, если вы постараетесь мне помочь, и найти проблему.

Заранее благодарен,с уважением, Гость)

Отправляются. Я немножко посидел, поковырялся) теперь отправляется все!

Но осталась проблемка: "Подтверждающее письмо было выслано по адресу:" далее никакого адреса

Также в списке заказов нет ни одного заказа (Пробовал с Virtuemart 1.1.8 и 1.1.9). Но мне кажется с заказами не в модуле проблема, поскольку на другом сайте стоит и все работает идеально (огромное спасибо за модуль).

Заранее благодарен,с уважением, Гость)

Установил полуавтоматический скрипт Вашего модуля для оплаты через ROBOKASSA – все работает, но не могу настроить описание заказа // описание заказа// order description$inv_desc = "ROBOKASSA Advanced User Guide";

Если ставить $inv_desc = "ROBOKASSA Advanced User Guide"; , то эта фраза и отображается в модуле оплаты, а если ставить $inv_desc = $db->f , то поле остается пустым. Не подскажите, что именно означает в скрипте выражении $db->f и как настроить вывод описания заказа ? А также возможно ли вместе с описанием заказа выводить предупреждение «Уточняйте наличие товара до его оплаты» - или выводить его в модуле отдельной строкой ? И 3-й вопрос – возможно ли установить запрет оплаты до подтверждения наличия товара продавцом ?

С уважением, Александр.

Установил полуавтоматический скрипт Вашего модуля для оплаты через ROBOKASSA – все работает, но не могу настроить описание заказа // описание заказа// order description$inv_desc = "ROBOKASSA Advanced User Guide";

Если ставить $inv_desc = "ROBOKASSA Advanced User Guide"; , то эта фраза и отображается в модуле оплаты. А если осуществлять продажу (в целях тестирования) не с сайта, а с локального сервера - то описание заказа вообще не отображается в на странице оплаты (графа описание пустая).

Допустим, я присвою описание заказа переменной - как потом её значение вывести через модуль заказа на странице оплаты ?Пытался присвоить $inv_desc = "$opisanie"; - Выдает ошибку

С уважением, Александр

Виктор, так вы скопируйте их туда из модуля.

P.S. А версия Virtuemart действительно старовата, что может быть чревато.

Вдруг, ни с того ни с сяго, без каких либо изменений с моей стороны модуль стал вместо вариантов оплаты выдавать сообщение:

📎📎📎📎📎📎📎📎📎📎