Автор Тема: сборка 4.6 Lego Edition и подключение Robokassa  (Прочитано 9559 раз)

AND

  • Гость
сборка 4.6 Lego Edition и подключение Robokassa
« : Сентября 15, 2011, 04:24:10 pm »
Привет.
возник насущный вопрос по платежной системе Robokassa и ее подключению на сайт,
работающий на сборке 4.6 Lego Edition.
В админке сайта , вкладка платежные системы, Робокасса включена, логин пароль указаны, акаунт в робокассе активирован.
но: после оформления покупки, попытка оплатить ее через робокассу приводит к получению сообщения :
"К сожалению, оплата этого счета невозможна,
так как некоторые параметры счета некорректны.
Неверный параметр: Signature".
возможно это происходит из за того что настройках сервиса Robokassa (администрирование)
имеются еще два пароля:
Пароль #1: [используется интерфейсом инициализации оплаты] ,
Пароль #2: [используется интерфейсом оповещения о платеже, XML-интерфейсах]
и куда их использовать -не понятно.
в админку на сайте их "вставить" некуда, куда то "в файл" через ftp - тоже не нашел.

пробовал решения , опубликованные на родном форуме shop-script.ru, но незаладилось. пара архивов , выложенные там в соответсвующих темах по Робокассе -умерли давно.
подскажите, кому то удалось наладить работу Robokassы ?

AND

  • Гость
Re: сборка 4.6 Lego Edition и подключение Robokassa
« Ответ #1 : Сентября 15, 2011, 06:48:40 pm »
ясно, спасиб.

Оффлайн tovshop

  • Пользователь
  • **
  • Сообщений: 31
    • Просмотр профиля
Re: сборка 4.6 Lego Edition и подключение Robokassa
« Ответ #2 : Апреля 25, 2012, 04:08:13 pm »
Доброго времени!
Стоит 5.0.2, есть в списке платежных систем Robokassa.
Заполнил все поля в лк Robokassa согласно предложенным в лк 5.0.2 и выбрал метод POST.
но при попытке оплатить сайт http://test.robokassa.ru/Error.aspx выдает ошибку "Отсутствует обязательный параметр "MrchLogin"
Где посмотреть, почему не передается этот Логин (ID)?
Возможно из-за тестового сервера?
http://www.robokassa.ru/ru/DocTest/ru/Interface.aspx?
« Последнее редактирование: Апреля 25, 2012, 04:12:05 pm от tovshop »

Оффлайн tovshop

  • Пользователь
  • **
  • Сообщений: 31
    • Просмотр профиля
Re: сборка 4.6 Lego Edition и подключение Robokassa
« Ответ #3 : Апреля 25, 2012, 10:22:03 pm »
Спасибо огромное mask, его стараниями модуль частично заработал :-)
Исправлены 2 файла:
payment.php и payment.tpl.html (во вложении)

Но не до конца, Робокасса дает неверный ответ, mask сказал, что это уже к Сергею :-)

[вложение удалено администратором]

Оффлайн kamaz2012

  • Случайный Прохожий
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: сборка 4.6 Lego Edition и подключение Robokassa
« Ответ #4 : Сентября 01, 2014, 09:57:23 am »
Уважаемые разработчики помогите настроить robokassa, "Отсутствует обязательный параметр "MrchLogin"
свяжитель со мной по скайп evgeniy23111988. Покупатели идут а оплата неработает.. спс.

Оффлайн tovshop

  • Пользователь
  • **
  • Сообщений: 31
    • Просмотр профиля
Re: сборка 4.6 Lego Edition и подключение Robokassa
« Ответ #5 : Ноября 03, 2015, 11:18:43 pm »
Часть кода payment.tpl.html
{if $payment_type == "robox"}
{* ROBOX *}
<div id="payform_2" style="width: 100%;">
<form class='wufoo' id="robox_form" action="{if $robox_testmode}http://test.robokassa.ru/Index.aspx{else}https://merchant.roboxchange.com/Index.aspx{/if}" method="post">
<input type="hidden" name="MrchLogin" value="{$robox_login}" />
<input type="hidden" name="OutSum" value="{$payment.price_rub}.{$payment.price_kop}" />
<input type="hidden" name="InvId" value="{$payment.id}" />
<input type="hidden" name="Desc" value="{$payment_description}" />
<input type="hidden" name="SignatureValue" value="{$robox_crc}" />
<input type="hidden" name="Shp_item" value="" />
<input type="hidden" name="IncCurrLabel" value="" />
<input type="hidden" name="Culture" value="ru" />
<ul>
<li><img src="./images/robox.png" alt="Ñèñòåìà ïðèåìà ïëàòåæåé ROBOKASSA" /></li>
<li><div class="f-left b" style="width:24%;">{$smarty.const.STRING_ORDER_ID}:</div><div class="f-left b" style="width:70%;">{$payment.id}</div></li>
<li><div class="f-left b" style="width:24%;">{$smarty.const.TABLE_ORDER_TOTAL}:</div><div class="f-left b" style="width:70%;">{$payment.price}</div></li>
{if $payment.addprice}
<li class="req">{$smarty.const.STRING_PAY_ADDPRICE} {$payment.addprice} %</li>
{/if}
<li><div class="f-left b" style="width:24%;">{$smarty.const.CUSTOMER_COMMENT}</div><div class="f-left" style="width:70%;">{$payment_description}</div></li>
</ul>
<div class="buttons">
<table>
<tr>
<td align="center">
<input type="hidden" name="complete_order" value="1" />
<a onclick="$('#robox_form').submit();" class="button"><span>{$smarty.const.STRING_PAY}</span></a>
</td>
</tr>
</table>
</div>
</form>
</div>
{/if}

Код payment.php (взято legosp6.2)

<?php
/*****************************************************************************
 *                                                                           *
 * Shop-Script FREE                                                          *
 * Copyright (c) 2005 Supme. All rights reserved.                     *
 *                                                                           *
 ****************************************************************************/
// payments page
if (isset($_GET["payment"]))
{
if( isset($_POST["payment_type"]) ){ $payment_type $_POST["payment_type"]; }
else{
if( isset($_GET["payment_type"]) ){//посылки РёР· РїРёСЃСЊРјР°
$payment_type validate_search_string($_GET["payment_type"]);
}
else{ $payment_type 0; }
}
//payments
$q db_query("SELECT * FROM ".PAYMENT_TABLE." LEFT JOIN ".PAYOPTION_TABLE." USING (payID)") or die (db_error());
$tmp_arr = Array();
while ($row mysql_fetch_assoc($q)){
$tmp_arr[$row['type']."_".$row['payoption']] = $row['payvalue'];
$smarty -> assign($row['type']."_".$row['payoption'], $row['payvalue']);
}
//price
if( isset($_GET["order_id"]) && isset($_GET["mail_to"]) ){//посылка РёР· РїРёСЊРјР°
$payment['id'] = (int)$_GET["order_id"];
$mail_to validate_search_string($_GET["mail_to"]);
$sql "
SELECT COUNT(*)
FROM "
.ORDERS_TABLE."
WHERE `orderID` = "
.$payment['id']." AND `cust_email` = '$mail_to'
"
;
$result db_r($sql);
if($result == 0){ die('Access denied'); }
}
else{
$payment['id'] = $_SESSION["order_id"];
}
$total db_r("SELECT SUM(Price*Quantity) FROM ".ORDERED_CARTS_TABLE.' WHERE name NOT LIKE \'' ADMIN_DISCOUNT_STRING '%\' and orderID='.(int)$_SESSION["order_id"]) or die(db_error());
$disk=db_r("SELECT Price FROM ".ORDERED_CARTS_TABLE.' WHERE name LIKE \'' ADMIN_DISCOUNT_STRING '%\' and orderID='.(int)$_SESSION["order_id"]);
$total -=$disk;
$addprice round($total/100*$tmp_arr[$payment_type."_addprice"], 2);
$payment['addprice'] = $tmp_arr[$payment_type."_addprice"];
$tmp_price explode("."$addprice+$total);
$payment['price'] = show_price($total);
$payment['price_rub'] = $tmp_price[0];
$payment['price_kop'] = $tmp_price[1];
if (!$payment['price_kop']) {$payment['price_kop'] = 0;}
$tmp_price_us explode("."round(($addprice+$total)/CURR_USD2));
$payment['price_usd'] = $tmp_price_us[0];
$payment['price_usc'] = $tmp_price_us[1];
if (!$payment['price_usc']) {$payment['price_usc'] = 0;}
$smarty->assign("payment"$payment);
$tmp_arr['all_description'] = str_replace("%orderid%"$_SESSION["order_id"], $tmp_arr['all_description']);
$tmp_arr['all_description'] = str_replace("%ordertotal%"$payment['price'], $tmp_arr['all_description']);
$smarty -> assign("payment_description"$tmp_arr['all_description']);
if (DB_CHARSET =='cp1251'$tmp_arr['all_description']=win2utf($tmp_arr['all_description']);
$smarty->assign("payment_type"$payment_type);
$smarty->assign("payment_name"$tmp_arr[$payment_type.'_name']);
$robox_crc md5($tmp_arr['robox_login'].":".$payment['price_rub'].".".$payment['price_kop'].":".$_SESSION["order_id"].":".$tmp_arr['robox_pass'].":"."Shp_item=");
$smarty -> assign("robox_crc"$robox_crc);

//////////////interkassa_2//////////////////
if($payment['price_usd']){
if(!$payment['price_usc']) $payment['price_usc'] = 0;
$ik_am $payment['price_usd'].'.'.$payment['price_usc'];
if($tmp_arr['inter_addprice'] && $tmp_arr['inter_addprice']!=0){
$addprice = ($tmp_arr['inter_addprice'])/100;
$addprice = ($ik_am*$addprice) + $ik_am;
$ik_am round($addprice,2);
}
$smarty->assign("payment_price"$ik_am);
}
//массив С„ормирующий РїРѕРґРїРёСЃСЊ
$dataSet = array(
'ik_co_id'=>$tmp_arr['inter_shopid'],
'ik_pm_no'=>$payment['id'],
'ik_am'=>$ik_am,
'ik_cur'=>CONF_CURRENCY_ISO3,
'ik_desc'=>$tmp_arr['all_description']
);
$key $tmp_arr['inter_key']; //тестовый РёР»Рё СЃРµРєСЂРµС‚ный РєР»СЋС‡


//unset($dataSet['ik_sign']); //удаляем РёР· РґР°РЅРЅС‹С… СЃС‚СЂРѕРєСѓ РїРѕРґРїРёСЃРё
ksort($dataSetSORT_STRING); // СЃРѕСЂС‚ируем РїРѕ РєР»СЋС‡Р°Рј РІ Р°Р»С„авитном РїРѕСЂСЏРґРєРµ СЌР»РµРјРµРЅС‚С‹ РјР°СЃСЃРёРІР°
array_push($dataSet$key); // РґРѕР±Р°РІР»СЏРµРј РІ РєРѕРЅРµС† РјР°СЃСЃРёРІР° "секретный РєР»СЋС‡"
$signString implode(':'$dataSet); // РєРѕРЅРєР°С‚енируем Р·РЅР°С‡РµРЅРёСЏ С‡РµСЂРµР· СЃРёРјРІРѕР» ":"
$ik_sign base64_encode(md5($signStringtrue));  // Р±РµСЂРµРј MD5 С…СЌС€ РІ Р±РёРЅР°СЂРЅРѕРј РІРёРґРµ РїРѕ СЃС„ормированной СЃС‚СЂРѕРєРµ Рё РєРѕРґРёСЂСѓРµРј РІ BASE64
$smarty->assign("ik_sign"$ik_sign);
//////////////END interkassa_2//////////////



$smarty->assign("main_content_template""payment.tpl.html");
}
?>

Работает.
« Последнее редактирование: Ноября 03, 2015, 11:29:24 pm от tovshop »