Все необходимое для подключения приёма и оформления онлайн-платежей 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"; |
Готово.