Задать вопрос
@realnin

Как отправить поле из формы в Robokassa?

Задача: взять данные из формы и отправить в робокассу.

Имеется обработчик Robokassa
<?

// 2.
// Оплата заданной суммы с выбором валюты на сайте ROBOKASSA
// Payment of the set sum with a choice of currency on site ROBOKASSA

// регистрационная информация (логин, пароль #1)
// registration info (login, password #1)
$mrh_login = "log";
$mrh_pass1 = "pass";

// номер заказа
// number of order
$inv_id = 0;

// описание заказа
// order description
$inv_desc = "VIP 2 пакет";

// сумма заказа
// sum of order
$out_summ = "4999";

// предлагаемая валюта платежа
// default payment e-currency
$in_curr = "";

// язык
// language
$culture = "ru";

   $shp_item= htmlspecialchars($_POST["Shp_item"]);   

// формирование подписи
// generate signature
$crc  = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item");

// форма оплаты товара
// payment form
print "<html>".
      "<form action='https://merchant.roboxchange.com/Index.aspx' method=POST>".
      "<input type=hidden name=MrchLogin value=$mrh_login>".
      "<input type=hidden name=OutSum value=$out_summ>".
      "<input type=hidden name=InvId value=$inv_id>".
      "<input type='text' name='Shp_item' required>".   
      "<input type=hidden name=Desc value='$inv_desc'>".
      "<input type=hidden name=SignatureValue value=$crc>".
      "<input type=hidden name=IncCurrLabel value=$in_curr>".
      "<input type=hidden name=Culture value=$culture>".
      "<input type=submit  value='ОПЛАТИТЬ'>".
      "</form></html>";
?>


Вопрос следующий. Как я могу вот это поле
"<input type='text' name='Shp_item' required>".
получить вместе с ответом робокассы?

Не могу понять, как именно я должен это динамическое поле запихнуть сюда
$crc  = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item");

попробовал
$shp_item= htmlspecialchars($_POST["Shp_item"]);

Не получается, т.к поле нужно получить до отправки формы

Что бы я не делал, поле Shp_item приходит всегда пустым..

Получена оплата:
Цена: 4999.00
inv_id: 10060
Метод оплаты: BankCard
Shp_item=
  • Вопрос задан
  • 482 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
При отправке формы обращаетесь по ajax к вашему сайту за получением подписи, подставляете ее и только потом отправляете форму. При этом проверяете валидность того, что ввел пользователь (чтобы он не подставил в оплату заказа ценой 100 рублей плату 1 рубль, например).
Подпись, собственно, для этого и используется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы