ROBOKASSA не зачисляются деньги если не нажать вернутся в магазин

M
На сайте с 03.06.2012
Offline
73
1977

Здравствуйте. Есть сайт на джумле 2.5 и робокасса. При оплате происходит интересный момент, а именно деньги не зачисляются в БД джумлы если не нажать кнопку Вернутся в магазин. скажите где копать, сам компенент оплаты джумлы или настройки робокассы? Спасибо!

bukachuk
На сайте с 07.09.2008
Offline
97
#1

Компонент наверное, а именно момент подтверждение платежа Success URL который, а не Result URL, скорее всего зачисление идет по Result - это не правильно

Программирование PHP,Mysql (/ru/forum/934470)
M
На сайте с 03.06.2012
Offline
73
#2
bukachuk:
Компонент наверное, а именно момент подтверждение платежа Success URL который, а не Result URL, скорее всего зачисление идет по Result - это не правильно

Нашел вот такой кусок кода:

Class Robokassa extends BillingPlugin 

{
function Robokassa($pname)
{
BillingPlugin::BillingPlugin($pname);
if ($this->res_url == '')
{
$this->res_url = JURI::base() . "components/com_billing/plugins/$pname/result.php";
$this->res_url = str_replace('administrator/', '', $this->res_url);
}
if ($this->success_url == '')
{
$this->success_url = JURI::base() . "components/com_billing/plugins/$pname/result2.php";
$this->success_url = str_replace('administrator/', '', $this->success_url);
}
if ($this->fail_url == '')
{
$this->fail_url = JURI::base() . "index.php?option=com_billing&task=fail&pid=$this->id";
$this->fail_url = str_replace('administrator/', '', $this->fail_url);
}
}

его нужно править, я просто с платежными системами еще не работал, там что прошу не пинать ))

---------- Добавлено 24.01.2013 в 02:54 ----------

если нужно я сброшу всю архивку компонента, помогите разобраться пожалуйста. ))

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3
bukachuk:
Компонент наверное, а именно момент подтверждение платежа Success URL который, а не Result URL, скорее всего зачисление идет по Result - это не правильно

Это не то что не правильно, это КРИТИНИЗМ!!!

Попал как-то на такой сайт(давно, ещ не знал вообще как это работает). Так вот, при нажатии на F5 у меня увеличивался баланс.

То есть закинул я через робокассу на сайт 100 рублей. В самом конце платежа, при переходе на сакессУрл надо просто потыкать F5 и баланс будет увеличиваться на сумму платежа.

Покажите УРЛ. Если боитесь - можно в личку. Глянем-с, что там у Вас пАломато.

Подпись))
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4
Милованов Ю.С:
Это не то что не правильно, это КРИТИНИЗМ!!!

На этом форуме тоже самое :)

Поэтому этим страдают многие, кто программируют. Забывая о том, что Успешно или Не успешно, это просто страницы для пользователя и они не должны нести никакого кода внутри себя. А то что на них передаётся это лишь опять информация для пользователя.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
M
На сайте с 03.06.2012
Offline
73
#5

нашел два скрипта помогите разобратся

Result URL:

<?php


define( '_JEXEC', 1 );

define('DS', DIRECTORY_SEPARATOR);
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../../..' ));

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

require_once( JPATH_BASE .DS.'components'.DS.'com_billing'.DS.'useraccount.php' );
require_once( JPATH_BASE .DS.'components'.DS.'com_billing'.DS.'account.php' );

BillingLogMessage('Billing Plugin', 'Robokassa', "Result URL processing...");

$db =& JFactory::getDBO();
$query = "select * from `#__billing_settings` where paysystem='robokassa'";
$result = $db->setQuery($query);
$row = $db->loadAssoc();

$mrh_pass2 = $row['pass2'];
$out_summ = $_REQUEST["OutSum"];
$inv_id = $_REQUEST["InvId"];
$uid = $_REQUEST["SHPuid"];
$crc = $_REQUEST["SignatureValue"];
$crc = strtoupper($crc);
$my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass2:SHPuid=$uid"));

if ($my_crc == $crc)
{
BillingLogMessage('Billing Plugin', 'Robokassa', "Success: $inv_id");
echo 'OK'.$inv_id . "\n";
}
else
{ BillingLogMessage('Billing Plugin', 'Robokassa', "Fail: $crc != $my_crc");
echo 'fail';
}

?>

Success URL:


<?php

define( '_JEXEC', 1 );

define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', substr(__FILE__,0,strrpos(__FILE__, DS."components")));
require_once( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once( JPATH_BASE .DS.'includes'.DS.'framework.php' );


$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

include_once (JPATH_BASE . '/components/com_billing/useraccount.php');
include_once (JPATH_BASE . '/components/com_billing/account.php');
require_once( JPATH_BASE .DS.'components'.DS.'com_billing'.DS.'plugin.php' );
require_once( JPATH_BASE .DS.'components'.DS.'com_billing'.DS.'plugins'.DS.'robokassa'.DS.'robokassa.php' );

BillingLogMessage('Billing Plugin', 'Robokassa', "Start...");

$db =& JFactory::getDBO();
$query = "select * from `#__billing_settings` where paysystem='robokassa'";
$result = $db->setQuery($query);
$row = $db->loadAssoc();

$mrh_pass1 = $row['pass1'];
$out_summ = $_REQUEST["OutSum"];
$inv_id = $_REQUEST["InvId"];
$pid = $inv_id;
$crc = $_REQUEST["SignatureValue"];
$uid = $_REQUEST["SHPuid"];
$crc = strtoupper($crc);
$my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass1:SHPuid=$uid"));

if ($my_crc != $crc)
{
BillingLogMessage('Billing Plugin', 'Robokassa', "Invalid signature $my_crc != $crc");
return false;
}

BillingLogMessage('Billing Plugin', 'Robokassa', "Making payment for order $pid...");
$Plugin = new Robokassa('robokassa');
$Plugin->Success2($out_summ, $uid, $pid);

?>

подскажите пожалуйста что исправить? Очень прошу ))

bukachuk
На сайте с 07.09.2008
Offline
97
#6

$Plugin = new Robokassa('robokassa');

$Plugin->Success2($out_summ, $uid, $inv_id);

Вставьте в Success перед echo OK

M
На сайте с 03.06.2012
Offline
73
#7
bukachuk:
$Plugin = new Robokassa('robokassa');

$Plugin->Success2($out_summ, $uid, $inv_id);


Вставьте в Success перед echo OK

Спасибо! Но echo OK нет в Success URL или этот код в двох кодах вставлять?

bukachuk
На сайте с 07.09.2008
Offline
97
#8

В Success надо убрать чтобы не было двойного зачисления, да и вообще такие вещи надо делать с умом, вы же не пирожки принимаете а деньги

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