Ошибка отправки данных в Робокассу. Код 29

bor10811

Well-Known Member
Регистрация
04.04.2017
Сообщения
79
Пытаюсь подключить робокассу. Вот код страницы с формой:
Код:
<?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>
При отправке данных появляется ошибка: «Не получилось. Код: 29»
Без дополнительных пользовательских данных всё работает исправно, так что я попадаю на форму робокассы с выбором способа оплаты
Связался с техподдержкой. Они сказали, что проблема в формировании сигнатуры. Я так понял, что я накосячил с формированием контрольной суммы. Перепроверил. Вроде всё правильно
- все дополнительные данные имеют префикс shp_
- расположены в алфавитном порядке
- выполнена URL-кодировка
Не могу понять, что ещё нужно сделать
 
Последнее редактирование модератором:

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
772
При формирование контрольной суммы для некоторых, например для $inv_id так и написано, а для $shp_awarded написано Shp_awarded='.$shp_awarded
Так и надо?
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
772
А вот это Shp_type и это Shp_place отсортировано правильно?
 

bor10811

Well-Known Member
Регистрация
04.04.2017
Сообщения
79
Действительно, есть ошибка в контрольной сумме. Поменял на:
$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_place='.$shp_place.':Shp_region='.$shp_region.':Shp_title='.$shp_title.':Shp_type='.$shp_type;

Но это никак не помогло.
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
772
Ещё можно попробовать убрать сначала все пользовательские данные, потом добавлять по одному параметру и после каждого добавления проверять
 
Верх Низ