Подскажите по Робокассе

12
Маринада
На сайте с 03.11.2011
Offline
62
1861

Доброго яркого дня всем!

Вопрос для знающих. Что-то ломаем голову по настройке платежа. Нужна помощь.

Основа кода взята тут https://www.robokassa.ru/ru/HowTo.aspx

В тех.документации указано что мы можем передавать любые параметры в платеж, начинаться они должны с Shp_

Вот пример который работает:

// generate signature

$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item");

А вот так уже нет:

// generate signature

$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item:Shp_w=$username");

Пишет: "К сожалению, оплата этого счета невозможна. Неверный параметр: Signature"

Как нам передать параметр Shp_w?

Вообщем что-то всё встало у нас на этом :(

Помогите разобраться.

C
На сайте с 26.10.2013
Offline
54
#1

Shp_w=$username случайно не содержит русских символов?

Услуги по парсингу данных (/ru/forum/939826), единоразовый и регулярный сбор данных. Любые объемы. Скрипты на PHP, создание и доработка, решение проблем с сайтами Пишите в личные сообщения или скайп
Маринада
На сайте с 03.11.2011
Offline
62
#2

colorito, нет, пробовали даже без переменной $username указав просто Shp_w=123 и всё равно ошибка платежа.

Тех.поддержка присылает только ссылку на справку http://docs.robokassa.ru/#1059 но мы там уже 2й день живем. :((((

C
На сайте с 26.10.2013
Offline
54
#3

Маринада, а Shp_w вы же передаете при вызове робокассовской iFrame?

Маринада
На сайте с 03.11.2011
Offline
62
#4

colorito, нет в php коде. вот он весь:

<?

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

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

// описание заказа
// order description
$inv_desc = "ROBOKASSA Advanced User Guide";

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

// тип товара
// code of goods
$shp_item = "2";

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

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

// добавляем параметр Shp_w
$Shp_w = "";

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

// форма оплаты товара
// 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=hidden name=Desc value='$inv_desc'>".

// сам параметр Shp_w
"<input type=text name=Shp_w value='123'>".

"<input type=hidden name=SignatureValue value=$crc>".
"<input type=hidden name=Shp_item value='$shp_item'>".
"<input type=hidden name=IncCurrLabel value=$in_curr>".
"<input type=hidden name=Culture value=$culture>".
"<input type=submit value='Pay'>".
"</form></html>";
?>
C
На сайте с 26.10.2013
Offline
54
#5

Ну конкретно этот код работать не будет, потому что определена пустая переменная $Shp_w = "", от нее рассчитывается сигнатура, а форму попадает значение 123

Маринада
На сайте с 03.11.2011
Offline
62
#6

colorito, ставим $Shp_w = "123" и так не работает :(

C
На сайте с 26.10.2013
Offline
54
#7

Хорошо, последняя попытка от меня

Попробуйте рассчитывать сигнатуру вот так

$crc  = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:$shp_item:$Shp_w");

или так

$crc  = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item:$Shp_w");
ХЗ
На сайте с 31.08.2008
Offline
155
#8
Маринада:
colorito, ставим $Shp_w = "123" и так не работает :(

надо $Shp_w = "123" передавать перед $crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item:Shp_w=$Shp_w");

например:


if( isset($_POST['submit']) )
{

$inv_desc = 'Пополнение счета ......';


$inv_id = time();
$mrh_login = "ваш логин";
$mrh_pass1 = "ваш пас 1";
$shpa = 1222;
$shpb = 0 ;
$out_summ = intval($_POST['add_money']);

$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:shpa=$shpa:shpb=$shpb");

$output = '';
$output .= 'MrchLogin='.$mrh_login;
$output .= '&OutSum='.$out_summ;
$output .= '&InvId='.$inv_id;
$output .= '&Desc='.urlencode($inv_desc);
$output .= '&SignatureValue='.$crc;
$output .= '&shpa='.$shpa;
$output .= '&shpb='.$shpb;
header("Location:https://merchant.roboxchange.com/Index.aspx?".$output);
}
Маринада
На сайте с 03.11.2011
Offline
62
#9

не знаем даже как решить задачу. (((((((((((((((((((((((((((((

Параметр $Shp_w как только мы его не крутили и куда только не вставляли.

ХЗ
На сайте с 31.08.2008
Offline
155
#10
Маринада:

не знаем даже как решить задачу. (((((((((((((((((((((((((((((
Параметр $Shp_w как только мы его не крутили и куда только не вставляли.

Вы в $crc передаете пустой $Shp_w. Сами убедитесь в этом:

print_r("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item:Shp_w=$Shp_w"); die;
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий