Пытаюсь подключить робокассу. Вот код страницы с формой:
При отправке данных появляется ошибка: «Не получилось. Код: 29»
Без дополнительных пользовательских данных всё работает исправно, так что я попадаю на форму робокассы с выбором способа оплаты
Связался с техподдержкой. Они сказали, что проблема в формировании сигнатуры. Я так понял, что я накосячил с формированием контрольной суммы. Перепроверил. Вроде всё правильно
- все дополнительные данные имеют префикс shp_
- расположены в алфавитном порядке
- выполнена URL-кодировка
Не могу понять, что ещё нужно сделать
Код:
<?php
// Дополнительные пользовательские параметры
$shp_mail = urlencode($_POST['tests_indifferent_form_mail']);
$shp_name = urlencode($_POST['tests_indifferent_form_name']);
$shp_faculty = urlencode($_POST['tests_indifferent_form_faculty']);
$shp_curator = urlencode($_POST['tests_indifferent_form_curator']);
$shp_region = urlencode($_POST['forms_region']);
$shp_city = urlencode($_POST['forms_city']);
$shp_institution = urlencode($_POST['tests_indifferent_form_institution']);
$shp_awarded = urlencode($_POST['tests_indifferent_form_awarded']);
$shp_type = urlencode($_POST['tests_indifferent_form_type']);
$shp_title = urlencode($_POST['tests_indifferent_form_title']);
$shp_firm = urlencode($_POST['tests_indifferent_form_firm']);
$shp_place = urlencode($_POST['tests_indifferent_form_place']);
$shp_date = urlencode($_POST['tests_indifferent_form_date']);
// регистрационная информация (идентификатор магазина, пароль #1)
$mrh_login = "…";
$mrh_pass1 = "…";
// сумма заказа
$out_summ = "100";
// номер заказа
$inv_id = 0;
// тип товара
$shp_item = "2";
// формирование контрольной суммы
$str = $mrh_login.':'.$out_summ.':'.$inv_id.':'.$mrh_pass1.':Shp_awarded='.$shp_awarded.':Shp_city='.$shp_city.':Shp_curator='.$shp_curator.':Shp_date='.$shp_date.':Shp_faculty='.$shp_faculty.':Shp_firm='.$shp_firm.':Shp_institution='.$shp_institution.':Shp_item='.$shp_item.':Shp_mail='.$shp_mail.':Shp_name='.$shp_name.':Shp_region='.$shp_region.':Shp_title='.$shp_title.':Shp_type='.$shp_type.':Shp_place='.$shp_place;
$crc = md5($str);
?>
<div id="tests_indifferent_block_form">
<form action="[URL]https://merchant.roboxchange.com/Index.aspx[/URL]" method="POST" name="tests_indifferent_form" class="show_test tests_indifferent_form">
<div class="show_test tests_indifferent_form_text">Ваш e-mail</div>
<input type="email" name="tests_indifferent_form_mail" class="show_test tests_indifferent_form_input" required>
<div class="show_test tests_indifferent_form_text">Фамилия, имя, отчество</div>
<input type="text" name="tests_indifferent_form_name" class="show_test tests_indifferent_form_input" required>
<div class="show_test forms_text">Класс</div>
<input type="number" name="tests_indifferent_form_faculty" class="show_test forms_input">
<div class="show_test forms_text">ФИО куратора</div>
<input type="text" name="tests_indifferent_form_curator" class="show_test forms_input">
<div class="show_test forms_text">Регион (Республика, область, край)</div>
<input type="text" name="forms_region" class="show_test forms_input">
<div class="show_test forms_text">Город (село, поселок)</div>
<input type="text" name="forms_city" class="show_test forms_input">
<div class="show_test tests_indifferent_form_text">Образовательное учреждение</div>
<input type="text" name="tests_indifferent_form_institution" class="show_test tests_indifferent_form_input" required class="show_test">
<input type="text" name="tests_indifferent_form_awarded" value="Награждается" hidden class="show_test">
<input type="text" name="tests_indifferent_form_type" value="Блиц-олимпиада" hidden class="show_test">
<?php echo '<input type="text" name="tests_indifferent_form_title" value="'.$test_title_enter.'" hidden class="show_test">'; ?>
<input type="text" name="tests_indifferent_form_firm" value="ГРАНИ ПОЗНАНИЯ" hidden class="show_test">
<input type="text" name="tests_indifferent_form_place" id="tests_indifferent_form_place" value="" hidden class="show_test">
<input type="text" name="tests_indifferent_form_date" id="tests_indifferent_form_date" value="" hidden class="show_test">
<?php
echo '
<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=hidden name="SignatureValue" value="'.$crc.'">
<input type=hidden name="Shp_item" value="'.$shp_item.'">
';
?>
<input type="submit" name="tests_indifferent_form_submit" value="Отправить данные" class="show_test tests_indifferent_form_submit">
</form>
</div>
Без дополнительных пользовательских данных всё работает исправно, так что я попадаю на форму робокассы с выбором способа оплаты
Связался с техподдержкой. Они сказали, что проблема в формировании сигнатуры. Я так понял, что я накосячил с формированием контрольной суммы. Перепроверил. Вроде всё правильно
- все дополнительные данные имеют префикс shp_
- расположены в алфавитном порядке
- выполнена URL-кодировка
Не могу понять, что ещё нужно сделать
Последнее редактирование модератором: