Seamanbmw Опубликовано 21 мая, 2015 Жалоба Поделиться Опубликовано 21 мая, 2015 проблема: К сожалению, оплата этого счета невозможнаНекоторые параметры счета некорректныНеверный параметр: Signature пароли проверял и менял на очень простые несколько раз ответ робокассы Добрый день! Данная ошибка возникает только на стороне магазина. Проверять необходимо скрипт, отвечающий за инициализацию оплаты, а именно, ту часть, что формирует Signature по формуле, состоящей из переменных. Самые распространенные неточности, из-за которых может неверно считаться MD5: 1. Используется некорректный Идентификатор магазина; 2. Используется некорректный Пароль 1 (MerchantPass1); 3. Используются дополнительные пользовательские параметры (shp), которые добавлены в программный код кассы, но не занесены в формулу подсчета или наоборот, в формуле подсчета указаны, в коде их нет. обрыл всю инфу по коду, но кривые руки не дают возможности решить вопрос вот исходник robokassa.php: <?php require_once('api/Simpla.php'); class Robokassa extends Simpla { public function checkout_form($order_id, $button_text = null) { if(empty($button_text)) $button_text = 'Перейти к оплате'; $order = $this->orders->get_order((int)$order_id); $payment_method = $this->payment->get_payment_method($order->payment_method_id); $payment_settings = $this->payment->get_payment_settings($payment_method->id); $price = $this->money->convert($order->total_price, $payment_method->currency_id, false); $success_url = $this->config->root_url.'/order/'.$order->url; $fail_url = $this->config->root_url.'/order/'.$order->url; // регистрационная информация (логин, пароль #1) // registration info (login, password #1) $mrh_login = $payment_settings['login']; $mrh_pass1 = $payment_settings['password1']; // номер заказа // number of order $inv_id = $order->id; // описание заказа // order description $inv_desc = 'Оплата заказа №'.$inv_id; // метод оплаты - текущий $shp_item = $payment_method->id; // предлагаемая валюта платежа // default payment e-currency $in_curr = "PCR"; // язык // language $culture = $payment_settings['language']; // формирование подписи // generate signature $signature = md5($mrh_login . ":" . $price . ":" . $inv_id . ":" . $mrh_pass1); $button = "<form accept-charset='cp1251' action='https://merchant.roboxchange.com/Index.aspx' method=POST>". "<input type=hidden name=MrchLogin value='$mrh_login'>". "<input type=hidden name=OutSum value='$price'>". "<input type=hidden name=InvId value='$inv_id'>". "<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 class=checkout_button value='Перейти к оплате →'>". "</form>"; return $button; } } кто может глянуть исходник кода своей рабочей робокассы? Цитата Ссылка на сообщение Поделиться на другие сайты
comAT0Zz Опубликовано 21 мая, 2015 Жалоба Поделиться Опубликовано 21 мая, 2015 (изменено) У вас используется переменная $signature при генерации md5(), но ее в форме нету, там у вас вместо нее $crc и, у меня код генерации сигнатуры через strtoupper(), я уже не помню почему $crc = strtoupper(md5($mrh_login.":".$price.":".$inv_id.":".$mrh_pass1)); Изменено 21 мая, 2015 пользователем comAT0Zz Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 21 мая, 2015 Жалоба Поделиться Опубликовано 21 мая, 2015 В текущей версии стоит // формирование подписи // generate signature $crc = md5("$mrh_login:$price:$inv_id:$mrh_pass1"); Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.