コード例 #1
0
ファイル: fail.php プロジェクト: shyokinmv/utm_uniteller
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Заказ не оплачен</title>
</head>
<body>

<?php 
include_once dirname(__FILE__) . "/uniteller.php";
$order_id = $_REQUEST["Order_ID"];
LogToScreen("Заказ " . $order_id . " не оплачен");
LogToScreen("Request");
var_dump($_REQUEST);
LogToScreen("Server");
var_dump($_SERVER);
LogToScreen("Session");
var_dump($_SESSION);
$status = Uniteller::GetPaymentResult($order_id);
var_dump($status);
?>

</body>
</html>
コード例 #2
0
ファイル: result.php プロジェクト: shyokinmv/utm_uniteller
    LogToFile('Отсутствует подпись', $moduleName);
    exit;
}
$signature = $_REQUEST['Signature'];
// проверка наличия параметра Статуса операции
if (!isset($_REQUEST['Status'])) {
    LogToFile('Отсутствует статус оплаты', $moduleName);
    exit;
}
$status0 = $_REQUEST['Status'];
LogToFile('Статус оплаты заказа ' . $status0, $moduleName);
// $status0 может быть
// authorized - средства успешно заблокированы (выполнена авторизационная
//   транзакция)
// not authorized - средства не заблокированы (авторизационная транзакция не
//   выполнена) по ряду причин
// paid - оплачен (выполнена финансовая транзакция или заказ оплачен в
//   электронной платёжной системе)
// canceled - отменён (выполнена транзакция разблокировки средств или выполнена
//   операция по возврату платежа после списания средств)
// waiting - ожидается оплата выставленного счёта. Статус используется только
//   для оплат электронными валютами, при которых процесс оплаты может содержать
//   этап выставления черех систему Uniteller счёта на оплату и этап фактической
//   оплаты этого счета покупателем, которые существенно разнесены по времени
// проверка достоверности подписи
if (!Uniteller::IsSignatureCorrect($order_id, $status0, $signature)) {
    LogToFile('Подпись неверна', $moduleName);
    exit;
}
Uniteller::OrderPaymentCallback($order_id);
exit;
コード例 #3
0
 function init()
 {
     global $MOD_TITLE, $MOD_GROUP, $MOD_VISIBLE, $MOD_SUBMENU;
     parent::init($MOD_TITLE, $MOD_GROUP, $MOD_VISIBLE);
     // получаем список лицевых счетов абонента
     $this->accounts = array();
     $this->urfa->call(-16469);
     $this->urfa->send();
     // получаем количество записей
     $count = $this->urfa->get_int();
     for ($i = 0; $i < $count; $i++) {
         $aid = $this->urfa->get_int();
         // номер лицевого счета
         // пропускаем два неинтересных нам параметра
         $this->urfa->get_double();
         // денег на счету
         $this->urfa->get_double();
         // ??
         // добавлем в списков лицевых счетов
         $this->accounts[$aid] = $aid;
     }
     $this->urfa->finish();
     if (isset($_REQUEST['Status'])) {
         $status = $_REQUEST['Status'];
     } else {
         $status = '';
     }
     if ($status == 'pay') {
         // получаем информацию о текущем пользователе
         $this->user = array();
         $this->urfa->call(-0x4052);
         $this->urfa->send();
         $this->user['id'] = $this->urfa->get_int();
         $this->user['login'] = $this->urfa->get_string();
         $this->user['basic_account'] = $this->urfa->get_int();
         $this->user['balance'] = roundDouble($this->urfa->get_double());
         $this->user['credit'] = roundDouble($this->urfa->get_double());
         $this->user['is_blocked'] = resolveBlockState($this->urfa->get_int());
         $this->user['create_date'] = getDateFromTimestamp($this->urfa->get_int());
         $this->user['last_change_date'] = getDateFromTimestamp($this->urfa->get_int());
         $this->user['who_create'] = resolveUserName($this->urfa->get_int());
         $this->user['who_change'] = resolveUserName($this->urfa->get_int());
         $this->user['is_juridical'] = $this->urfa->get_int();
         $this->user['full_name'] = $this->urfa->get_string();
         $accountId = intval($_REQUEST["AccountId"]);
         // проверка введенного значения суммы оплаты
         $subtotal_P = $_REQUEST['OutSum'];
         $subtotal_P = trim($subtotal_P);
         //убиарем лишние пробелы
         $subtotal_P = str_replace(',', '.', $subtotal_P);
         // заменяем запятые на точку
         $subtotal_P = floatval($subtotal_P);
         // пробуем преобразовать к числу
         $subtotal_P = round($subtotal_P, 2);
         // округляем до 2 знаков после запятой
         if ($subtotal_P != 0 && $subtotal_P >= 10 && $subtotal_P < 10000) {
             $client_ip = $_SERVER["REMOTE_ADDR"];
             echo $client_ip . '<br \\>' . "\n";
             $order_IDP = Uniteller::NewOrder($accountId, $subtotal_P, $client_ip);
             echo $order_IDP . '<br \\>' . "\n";
             //// Для отладки разрешаем переход на страницу оплаты только с определённого IP
             //if ((strpos($client_ip, '10.79.124.') == 0)
             //    or (strpos($client_ip, '10.78.252.') == 0)) {
             Uniteller::GoToPaymentPage($accountId, $order_IDP, $subtotal_P);
             //}
         } else {
             // при некорректно введенной сумме платежа возвращаемся на эту же страницу
             $url_return = $_SERVER['HTTP_REFERER'];
             header('Location: ' . $url_return);
         }
         exit;
     }
 }
コード例 #4
0
ファイル: check.php プロジェクト: shyokinmv/utm_uniteller
<?php

include_once dirname(__FILE__) . "/uniteller.php";
//// получить список незавершенных заказов
//$orders = Uniteller::GetOrdersInProcess();
//
//foreach ($orders as $o){
//    //проверить статус заказов
//    $status = 0; //Uniteller::GetPaymentResult($o);
//    LogToScreen($o . ' ' . $status . ' ' . count($status));
//}
//завершить оплаченные заказы
LogToScreen(md5(''));
libxml_disable_entity_loader(false);
$o = 538;
$status = Uniteller::GetPaymentResult($o);
LogToScreen($o . ' ' . $status . ' ' . count($status));
//var_dump($status);
foreach ($status as $s) {
    LogToScreen('----');
    //var_dump($s);
    LogToScreen('ordernumber: ' . $s->ordernumber);
    LogToScreen('response_code: ' . $s->response_code);
    LogToScreen('recommendation: ' . $s->recommendation);
    LogToScreen('message: ' . $s->message);
    LogToScreen('comment: ' . $s->comment);
    LogToScreen('date: ' . $s->date);
    LogToScreen('total: ' . $s->total);
    LogToScreen('currency: ' . $s->currency);
    LogToScreen('cardtype: ' . $s->cardtype);
    LogToScreen('cardnumber: ' . $s->cardnumber);