Оплата в Ubercart 2 через RoboXchange – uc_roboxchange для Drupal 6

Главные вкладки

Аватар пользователя direqtor direqtor 18 апреля 2009 в 11:33

Платежный модуль uc_roboxchange предназначен для проведения оплаты в вашем интернет-магазине на Ubercart через известный обменный сервис RoboXchange (он же Robokassa.ru). Обменный пункт, а значит и модуль позволяет принимать платежи в электронных валютах (Яндекс.Деньги, WebMoney, MoneyMail, RBK Money, Единый Кошелек, EasyPay, WebCreds), через sms, наличными через терминал Элекснет и переводом в системе CONTACT. Порт сделан в процессе разработки интернет-магазина www.e-oriental.ru.

Далее по шагам все особенности установки и настройки...

Drupal & Ubercart

У вас уже должен быть на рабочем хостинге (не на локалке) установлен и настроен магазин на Drupal 6 и Ubercart 2.

Инструкции по установке и настройке ищите на соответствующих сайтах.
Drupal 6: русский, английский.
Ubercart 2: русский, английский.

Регистрация в Робокассе

На заглавной странице сайта www.robokassa.ru находим здоровую кнопку «Подключиться сейчас!», жмем её и регистрируемся. После регистрации заходим в личный кабинет и вводим регистрационную информацию: название магазина, url сайта, и способ вывода денег. По последнему замечу, что если вы хотите принимать платежи в WebMoney, то это можно делать только на ее кошелек. Т.е. получая оплату на Яндекс.Деньги вы теряете покупателей с WM. Кроме того для получения оплаты на WM у вас должен быть персональный аттестат системы. Таковы условия WebMoney Transfer. Лучше всего также, чтобы тип кошелька совпадал с валютой используемой в вашем магазине. Но об этом ниже.

В разделе администрирования нужно установить три адреса вашего магазина по которым робокасса будет обмениваться данными (они генерируются модулем)
Result url: http://example.com/uc_roboxchange/done
Success url: http://example.com/uc_roboxchange/success
Fail url: http://example.com/uc_roboxchange/fail

Где http://example.com/ замените на адрес вашего сайта.

Методом запросов укажите POST - это безопаснее. К тому же при GET модуль отдаст покупателю ошибку при возврате в магазин. Здесь же заполните два пароля: Пароль #1 и Пароль #2, применяемые для шифрации данных в обмене между кассой и магазином. Само собой они должны отличаться от пароля для входа в саму систему и друг от друга. Все эти настройки потом надо в том же виде внести в настройки модуля RoboXchange.

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

Обратите внимание также на то, что после активации кассы изменить многие настройки, в частности номер кошелька будет невозможно.

Установка и настройка модуля Roboxchange

Скачиваете модуль Roboxchange или, если вы хотите проспонсировать его портирование, покупаете его в магазине заодно тестируя функциональность. (Сумма от 1WMZ до любой, которую считаете необходимой).

Распакованную папку с модулем можно скопировать в несколько мест:
1. системная папка модулей Drupal /sites/all/modules;
2. папка с штатными платежными системами Ubercart /sites/all/modules/ubercart/payment;
3. рекомендуемая разработчиками Ubercart папка для сторонних модулей /sites/all/modules/ubercart/contrib.

После включения модуля его настройки появятся на страницах управления магазином в установках оплаты admin/store/settings/payment/edit/methods.

На этой странице разворачиваем группу "RoboXchange установка". Задаем нужные параметры:
Action url по умолчанию https://merchant.roboxchange.com/Index.aspx
Merchant Login - ваш логин в робокассе.
Merchant Pass 1 - ваш Пароль #1 в робокассе.
Merchant Pass 2 - ваш Пароль #2 в робокассе.

После сохранения настроек значок робокассы должен появиться в интерфейсе корзины в списке способов оплаты.

Проблемное место на мой взгляд только поле Rate to site currency. Это курс валюты вашего сайта по отношению к валюте обменника на ваш кошелек. По умолчанию он был равен единице, и если цены в магазине в рублях, то используйте кошелёк WMR, а если в долларах - WMZ. В остальных случаях вам придется подбирать в этом поле более или менее точный курс валюты обмена: 33 или 0,03 на сегодня. При значениях меньше текущего курса наблюдалась отмена оплаченных счетов. Видимо, с этим багом ещё придётся разбираться. Поэтому лучше вам использовать тот кошелёк, чья валюта совпадает с ценами вашего сайта.

Еще один совет по безопасности. Придумайте для всех адресов интерфейса модуля (в настройках робокассы) какие-нибудь неординарные адреса, а на сайте перепишите системные путь синонимами. А для сокрытия системных путей вроде есть какой-то модуль.

Примечания

Версия модуля под Drupal 5 была сделана gor'ом. Весь исходный функционал в порте на Drupal 6 оставлен неизменным (в API робокассы изменился только URL). Моя работа по портированию заключалась в следующих шести моментах:
1. Новая редакция файла uc_roboxchange.install (изменения в Schema API).
2. Новая реализация hook_menu (изменения в API).
3. Корректировка параметров функций, связанных с формами (изменения в Form API).
4. Изменения параметров функций url().
5. Замена адреса мерчанта по умолчанию.
6. Чистка кода от несоответствий стандартам кодирования Drupal.

И спасибо, [user=gor], модуль доступен на оффсайте Drupal.

uc_roboxchange для Drupal 6

Скачать модуль uc_roboxchange для Drupal 6
uc_roboxchange - RoboXchange payment gateway для Drupal 6
Спонсировать разработку модуля для Drupal 6

Порт на Drupal 6 + Ubercart 2 платёжного модуля RoboXchange (статья в блоге автора)
Первый электронный магазин использующий этот модуль под Drupal 6

uc_roboxchange для Drupal 5

uc_roboxchange - RoboXchange payment gateway для Drupal 5
Ubercart RoboXchange drupal module
RoboXchange Drupal module (ecommerce + ubercart)
Через транзакции к доходу, или как настроить модуль RoboXchange в Ubercart'e

Общие сведения

ROBOKASSA. Описание интерфейсов
Этапы подключения к ROBOKASSе
Стандарты кодирования в Drupal

ВложениеРазмер
Иконка изображения uc_roboxchange59 КБ

Комментарии

Аватар пользователя kolyuchy.org kolyuchy.org 14 ноября 2010 в 0:12

При тестировании подключения к Робокассе в пункте "Уведомление о платеже" выдает ошибку "The remote server returned an error: (503) Server Unavailable." Что это может значить? И как это поправить?

Аватар пользователя maximsan maximsan 8 декабря 2011 в 0:40

После оплаты робокасса выдает "Не удалось установить связь с магазином для передачи ему информации об оплате. Через минуту будет произведена повторная попытка." Только спустя несколько минут и несколько обновлений выскакивает "завершение операции". Возврата в магазин не происходит. В итоге деньги на счет поступают. Но пользователь должен без задержек уведомляться об успешном платеже. Иначе после первого сообщения он может прекратить попытки и вознегодовать. Есть мысли?

Аватар пользователя Ash_Ketchum Ash_Ketchum 27 января 2012 в 21:56

maximsan wrote:
После оплаты робокасса выдает "Не удалось установить связь с магазином для передачи ему информации об оплате. Через минуту будет произведена повторная попытка." Только спустя несколько минут и несколько обновлений выскакивает "завершение операции". Возврата в магазин не происходит. В итоге деньги на счет поступают. Но пользователь должен без задержек уведомляться об успешном платеже. Иначе после первого сообщения он может прекратить попытки и вознегодовать. Есть мысли?

Присоединяюсь. Готов проспонсировать фикс.
Пофиксили силами стороннего разработчика.

Аватар пользователя DDDDD099 DDDDD099 28 марта 2012 в 18:09

Пишет Отсутствует обязательный параметр "MrchLogin" хоя это поле заполнено. Пытаюсь запустить на тестовом сервере робокассы - возможно с этим связано ?
PS. Нашел патч - заработало. Спасибо за модуль.