Не обновляется баланс на сайте после оплаты через unitpay

_han

Создатель
Регистрация
28 Дек 2014
Сообщения
30
Реакции
0
Не обновляется баланс на сайте после оплаты через unitpay

Всем привет, давно меня здесь не было)))
Есть проблемка:
Не обновляется баланс на сайте после оплаты через unitpay, что может быть?
Прописал в настройках обработчика платежей на сайте unitpay.ru Для просмотра ссылки Войди или Зарегистрируйся, при проверке вылетает "Магазин отклонил платеж: ошибка с данными " и ошибка {“error”:{“code”:-32000,”message”:”ошибка с данными”}} , поэтому не возможно сделать оплату…. но если в обработчике платежей убрать ссылку на/unitpay/drpayment.php, оплата проходит без проблем, но при этом на самлм сайте пользователю деньги не приходят, то есть баланс автоматически не обновляется, подскажите куда копать? Я полагаю, что проблема может быть в самом файле drpayment.php который в \www\systpayment\unitpay
Подскажите пожалуйста, что и где нужно подправить, или может у кого рабочий есть, поделитесь. Версия доски 8.5

Кстати скажу сразу, проверял также на 10.1 проблема таже:
{"error": {"code": -32000, "message": "ошибка с данными"}}
Магазин отклонил платеж: ошибка с данными

Значит проблема была изначально в 10.1.

Заранее спасибо за помощь.

www\systpayment\unitpay\drpayment.php:

<?php

// файл

include_once(“../../config/config.php”);
include_once(“../init_work.php”);

/*
$t = “данные GET: \r\n”;
if ( !empty( $_GET ) && sizeof($_GET) )
{
//foreach ( $_GET as $key => $value )
// $t.= $key . “=>”.$value.”;\r\n”;
$t .= var_export($_GET, true);
}
db_error(“Скрипт оплаты услуг (unitpay). “,$t);
*/

$mas_set = array(

array(“method”,”get”,”method”,”text”,true,true,”listv”,”check,pay”,false,false,”all”,0),//Индикатор предварительного запроса
/*
array(“params”,”post”,”params”,”text”,true,false,false,false,false,false,”all”,””),//кошелек продавца
array(“LMI_PAYMENT_NO”,”post”,”LMI_PAYMENT_NO”,”text”,true,false,false,false,false,false,”all”,”0″),
array(“LMI_PAYMENT_AMOUNT”,”post”,”LMI_PAYMENT_AMOUNT”,”text”,true,false,false,false,false,false,”all”,”0″),//Сумма, которую заплатил покупатель. Дробная часть отделяется точкой.
array(“LMI_MODE”,”post”,”LMI_MODE”,”text”,true,false,false,false,false,false,”all”,”0″),
array(“LMI_PAYER_WM”,”post”,”LMI_PAYER_WM”,”text”,true,false,false,false,false,false,”all”,”0″),
array(“LMI_PAYER_PURSE”,”post”,”LMI_PAYER_PURSE”,”text”,true,false,false,false,false,false,”all”,””),
array(“LMI_SYS_INVS_NO”,”post”,”LMI_SYS_INVS_NO”,”text”,true,false,false,false,false,false,”all”,””),
array(“LMI_SYS_TRANS_NO”,”post”,”LMI_SYS_TRANS_NO”,”text”,true,false,false,false,false,false,”all”,””),
array(“LMI_SYS_TRANS_DATE”,”post”,”LMI_SYS_TRANS_DATE”,”text”,true,false,false,false,false,false,”all”,””),

array(“LMI_HASH”,”post”,”LMI_HASH”,”text”,true,false,false,false,false,false,”all”,””),

array(“comment”,”post”,”comment”,”text”,true,false,false,false,false,false,”all”,””),
*/
);

$mas_set_params = array(
array(“unitpayId”,”numeric”,false),
array(“account”,”text”,true),
array(“sum”,”numeric”,true),
array(“profit”,”numeric”,false),
array(“phone”,”text”,false),
array(“paymentType”,”text”,false),
array(“operator”,”text”,false),
array(“date”,”text”,false),
array(“sign”,”text”,true),

);

$url_site = “Для просмотра ссылки Войди или Зарегистрируйся

$dbcnx=@$obj_baz->connectBaz($dbhost,$dbuser,$dbpasswd,$dbname);
if ( !$dbcnx ) write_answer_sp(1,”невозможно подключится к базе данных”);

$rez_control_data=$obj_control_data->processing_one_group($mas_set);

$mas_inbox = $rez_control_data[3];
$mas_status = $rez_control_data[5];

$get_params = array();
$data_params = array();
$is_check_data_params = false;

if ( !empty($_GET[“params”]) && is_array($_GET[“params”]) && sizeof($_GET[“params”]) )
{
$get_params = $_GET[“params”];//var_dump($get_params);
$is_data = true;
foreach ( $mas_set_params as $one_init_v )
{
$v = false;
if ( isset($get_params[$one_init_v[0]]) )
$v = trim($get_params[$one_init_v[0]]);

if ( !$v && $one_init_v[2] )
{
$is_data = false;
break;
}

if ( $one_init_v[1] == “numeric” )
{
if ( $v === false || ( $v !== “” && !is_numeric($v) ) )
{
$is_data = false;
break;
}
}

$data_params[$one_init_v[0]] = ($v === false ? “” : $v);

}

if ( $is_data ) $is_check_data_params = true;

}

if ( $rez_control_data[0] && !$rez_control_data[1] && $is_check_data_params )
{
//данные обнаружены

$method = $mas_inbox[“method”];
$is_check_query = ( $method == “pay” ? false : true );

$m = $get_params;
unset ($m[“sign”]);
ksort($m);

$part1 = implode(“”,$m);
$part1 .= $masConfig[“SP_SECRET_KEY_UNITPAY”];

$contr = md5( $part1 );

//$contr_test = md5( $part1 . $mas_inbox[“test”] . SECRET_KEY_A1LITE );

if ( $contr == $data_params[“sign”] )
{

if ( !mb_strlen( $data_params[“account”] ) ) write_answer_sp(1,”не заданы идентификационные параметры”);

$d_order = explode(“:”,mb_strtolower($data_params[“account”]));
if ( !(sizeof($d_order) >= 2 ) ) write_answer_sp(1,”ошибка с инициализационными данными.”);

$mas_data = $d_order;
unset($mas_data[0]);
$mas_data = array_values($mas_data);

if ( $mas_data[0] == 7 )
$name_modul = “addmoney”;
else
{
$name_modul = work_init_moduls::get_name_modul($mas_data[0]);
if ( !$name_modul ) write_answer_sp(1,”ошибка с инициализацией модуля”);
}
$mas_data[0] = $name_modul;

if ( !( sizeof( $mas_data ) > 0 && gen_methods_systpayment::check_name_modul($mas_data[0]) ) )
write_answer_sp(1,”ошибка с инициализационными данными.”);

//echo($mas_data[0].” “.$mas_data[1]);

$path_dr_modul = gen_methods_systpayment::path_include_modul_sp($mas_data[0],”unitpay”);

if ( !$path_dr_modul )
{
write_answer_sp(1,”ошибка с платежным драйвером модуля.”);
}

$payment_amount = $data_params[“sum”];//сумма оплаченная пользователем
$payment_num_order = $d_order[0];//номер заказа

include($path_dr_modul);

//list($error,$error_text) = $obj_proc->operationServiceAdv($mas_data[0],$mas_data[1]);

}
else
{
write_answer_sp(1,”контрольные ключи не совпали”);
}

}
else
{
write_answer_sp(1,”ошибка с данными”);
}

write_answer_sp($error,$error_text);

function write_answer_sp($error,$error_text)
{
$answer=””;

if ($error==1)
{
db_error(“Скрипт оплаты услуг (unitpay)”,$error_text);

$answer = ‘{“error”: {“code”: -32000, “message”: “‘.codeHtmlText($error_text).'”}}’;
//$answer.= “error”;//$error_text;
}
else
{

$answer = ‘{“result”: {“message”: “Услуга успешно оказана!”}}’;
}

echo($answer);
exit();
}
 
Последнее редактирование:
Если еще актуально.
Проверьте файл systpayment\unitpay\addmoney.php
 
Актуально, проверил, вот что там:
<?php

// файл.

//include (DIR_CMS."/generalscript/proc_money_user.php");

$obj_proc_money_user = new classProcMoneyUser();

list($error,$error_text) = $obj_proc_money_user->operationCheckServiceAddMoney($mas_data,$payment_amount, array( "type_ps" => "unitpay" ), $is_check_query );
 
Назад
Сверху