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

 

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

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

 

ROBOKASSA

 

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

– Название способа оплаты: ROBOKASSA

– Код: ROBO

– Класс имени платежа: ps_payment

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

– Группа покупателей: default

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?
// 1.
// Оплата заданной суммы с выбором валюты на сайте мерчанта
// Payment of the set sum with a choice of currency on merchant site 
 
// регистрационная информация (логин, пароль #1)
// registration info (login, password #1)
$mrh_login = "логин в ROBOKASSA";
$mrh_pass1 = "пароль#1 в ROBOKASSA";
 
// номер заказа
// number of order
$inv_id = $db->f("order_id");
 
// описание заказа
// order description
$inv_desc = "ROBOKASSA Advanced User Guide";
 
// сумма заказа
// sum of order
$out_summ = $db->f("order_total");
 
// тип товара
// code of goods
$shp_item = 1;
 
// предлагаемая валюта платежа
// default payment e-currency
$in_curr = "PCR";
 
// язык
// language
$culture = "ru";
 
// кодировка
// encoding
$encoding = "utf-8";
 
// формирование подписи
// generate signature
$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item");
 
// HTML-страница с кассой
// ROBOKASSA HTML-page
print "<html><script language=JavaScript ".
"src='https://www.roboxchange.com/mrh_summpreview.asp?".
"MrchLogin=$mrh_login&OutSum=$out_summ&InvId=$inv_id&IncCurrLabel=$in_curr".
"&Desc=$inv_desc&SignatureValue=$crc&Shp_item=$shp_item".
"&Culture=$culture&Encoding=$encoding'></script></html>";
?>
 

После этого сохраняем  внесенные настройки. Все. Модуль оплаты через 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

 

После настройки аккаунта 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

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

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

1
<?php require_once( CLASSPATH. 'payment/ps_rk_out.php' );?>

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

Дополнительные файлы: Модуль оплаты ROBOKASSA