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

Все необходимое для подключения приёма и оформления онлайн-платежей robokassa
Цель — быстро предоставить читателю самое необходимое для подключения, минимальный код для старта.
Основное: success url — страница «Спасибо за покупку»
fail url — отмена оплаты, или ошибка
result url — робокасса вернет результат оплаты на эту страницу.

Основные элементы без которых ничего работать не будет:
MerchantLogin — идентификатор магазина из раздела Технические настройки;
OutSum — Требуемая к получению сумма. разделитель — точка.
Description — Описание покупки. Максимальная длина — 100 символов.
SignatureValue — Контрольная сумма — хэш, число в 16-ричной форме и любом регистре, разделение дdоеточие «:»
MerchantLogin:OutSum:InvId:Пароль#1 — если параметр InvId был передан,
MerchantLogin:OutSum::Пароль#1 — если параметр InvId передан не был.

Скачиваемый пример https://docs.robokassa.ru/media/1813/demo_php.zip
Пример php официальный https://docs.robokassa.ru/#2400 — тут последовательность паролей и сигнатуры

PHP Robokassa

index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* Формирование URL переадресации пользователя на оплату */
// ваши регистрационные данные
$mrh_login = "";      // ваш логин идентификатор магазина
$mrh_pass1 = "";   // торговый pass1 реальный
$mrh_test1 = "";   // торговый pass1 тестовый
// свойства заказа
$inv_id    = time();        // номер счета-фактуры магазина
// (уникально за все время существования магазина)
$inv_desc  = "desc";   // коментарий
$out_summ  = "5.12";   // иготовая сумма
// строим значение CRC
$crc  = md5("$mrh_login:$out_summ:$inv_id:$mrh_test1");
// строим URL. убираем IsTest для реальной оплаты
$url = "https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=$mrh_login&" .
    "OutSum=$out_summ&InvId=$inv_id&Description=$inv_desc&SignatureValue=$crc&IsTest=1";
// выводим URL-адрес, если вам нужно
echo "<a href='$url'>Ссылка для оплаты</a>";

result.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* Формирование URL переадресации пользователя на оплату */
// как часть скрипта ResultURL
// ваши регистрационные данные 
$mrh_pass2 = "";   // торговый pass2 реальный
$mrh_test2 = "";   // торговый pass2 тестовый
// Параметры HTTP:
$out_summ = $_REQUEST["OutSum"];
$inv_id = $_REQUEST["InvId"];
$crc = strtoupper($_REQUEST["SignatureValue"]);
// строим собственную CRC 
$my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_test2"));
if ($my_crc != $crc) {
    echo "bad sign\n";
    exit();
}
// печатаем подпись ОК
echo "OK$inv_id\n";
// выполняем какое-то действие (меняем статус заказа на оплаченный)

succes.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* Проверка параметров в скрипте завершения операции (SuccessURL) */
// как часть скрипта SuccessURL
// ваши регистрационные данные
$mrh_pass1 = "";   // торговый pass1 реальный
$mrh_test1 = "";   // торговый pass1 тестовый
// Параметры HTTP:
$out_summ = $_REQUEST["OutSum"];
$inv_id = $_REQUEST["InvId"];
$crc = $_REQUEST["SignatureValue"];
$crc = strtoupper($crc);  // принудительно использовать верхний регистр
// строим собственную CRC
$my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_test1"));
if ($my_crc != $crc) {
    echo "bad sign\n";
    exit();
}
// здесь вы можете проверить, что resultURL был вызван
// (для большей безопасности)
// ОК, оплата продолжается
echo "Оплата прошла успешно\n";

Готово.

Добавить комментарий