Answer the question
In order to leave comments, you need to log in
Fatal error: Cannot use object of type stdClass as array?
An error pops up:
Fatal error: Cannot use object of type stdClass as array in /var/www/u0788916/data/www/gdonate.ru/terminal.php on line 34
Here is the code:
<?php
$QueryType = $_GET['QueryType'];
$TransactionId = $_GET['TransactionId'];
$Account = $_GET['Account'];
$TransactionDate = $_GET['TransactionDate'];
$Amount = $_GET['Amount'];
$RevertId = $_GET['RevertId'];
$RevertDate = $_GET['RevertDate'];
$Comment = $_GET['Comment'];
$TransactionExt = $_GET['TransactionExt'];
//?QueryType=check&TransactionId=1
//?QueryType=pay&TransactionId=1&TransactionExt=1&Amount=100
$url = "demo.abills.net.ua:9443"; // Указываете адрес биллинга Abills
$user = "abills"; // Указываете логин от административного аккаунта
$passwd = "demo"; // Указываете пароль от админнистративного аккаунта
$api = "1523615231263123"; // Указываете API ключ от Abills
switch ($QueryType) {
case 'check':
/*echo '<?xml version="1.0" encoding="UTF-8"?>
<Response>
<TransactionId>'.$TransactionId.'</TransactionId>
<ResultCode>0</ResultCode>
<Comment></Comment>
</Response>';*/
$status = file_get_contents('https://'.$url.'/admin/index.cgi?qindex=15&UID='.$Account.'&SUMMARY_SHOW=1&EXPORT=1&API_KEY='.$api);
$check_status = json_decode($status);
//$active = $check_status[0]->CONTENT->Статус;
//$error = $check_status->ERROR;
if($check_status[0]->CONTENT->Статус == 'Активно'){
$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
$xml->openMemory(); //использование памяти для вывода строки
$xml->startDocument(); //установка версии XML в первом теге документа
$xml->startElement("Response"); //создание корневого узла
$xml->writeElement("TransactionId", $TransactionId); //ID платежа на стороне терминала
$xml->writeElement("ResultCode", "0"); //Статус для оповещения терминала
//$xml->writeElement("Comment", $Comment); //Комментарий при желание
$xml->endElement(); //закрытие корневого элемента
echo $xml->outputMemory(); //завершение записи в XML
}elseif($check_status[0]->CONTENT->Статус == 'Отключено'){
$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
$xml->openMemory(); //использование памяти для вывода строки
$xml->startDocument(); //установка версии XML в первом теге документа
$xml->startElement("Response"); //создание корневого узла
$xml->writeElement("TransactionId", $TransactionId); //ID платежа на стороне терминала
$xml->writeElement("ResultCode", "21"); //Статус для оповещения терминала
//$xml->writeElement("Comment", $Comment); //запись элемента
$xml->endElement(); //закрытие корневого элемента
echo $xml->outputMemory(); //завершение записи в XML
}elseif($check_status->ERROR == 'Undefined UID'){
$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
$xml->openMemory(); //использование памяти для вывода строки
$xml->startDocument(); //установка версии XML в первом теге документа
$xml->startElement("Response"); //создание корневого узла
$xml->writeElement("TransactionId", $TransactionId); //ID платежа на стороне терминала
$xml->writeElement("ResultCode", "24"); //Статус для оповещения терминала
//$xml->writeElement("Comment", $Comment); //запись элемента
$xml->endElement(); //закрытие корневого элемента
echo $xml->outputMemory(); //завершение записи в XML
}
break;
case 'pay':
/*echo '<?xml version="1.0" encoding="UTF-8"?>
<Response>
<TransactionId>'.$TransactionId.'</TransactionId>
<TransactionExt>'.$TransactionExt.'</TransactionExt>
<Amount>'.$Amount.'</Amount>
<ResultCode>0</ResultCode>
</Response>';*/
$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
$xml->openMemory(); //использование памяти для вывода строки
$xml->startDocument(); //установка версии XML в первом теге документа
$xml->startElement("Response"); //создание корневого узла
$xml->writeElement("TransactionId", $TransactionId);//ID платежа на стороне терминала
$xml->writeElement("TransactionExt", $TransactionExt); //ID платежа на стороне провайдера
$xml->writeElement("Amount", $Amount); //Сумма для зачиления
$xml->writeElement("ResultCode", "0"); //Статус для оповещения терминала
$xml->endElement(); //закрытие корневого элемента
echo $xml->outputMemory(); //завершение записи в XML
file_get_contents('https://'.$url.'/admin/index.cgi?qindex=2&UID='.$Account.'&xml=1&DESCRIBE=Терминал+№'.$TransactionId.'&header=1&SUM='.$Amount.'&add=1&user='.$user.'&passwd='.$passwd.'');
break;
case 'cancel':
/*echo '<?xml version="1.0" encoding="UTF-8"?>
<Response>
<TransactionId>'.$TransactionId.'</TransactionId>
<RevertId>'.$RevertId.'</RevertId>
<TransactionExt>'.$TransactionExt.'</TransactionExt>
<Amount>'.$Amount.'</Amount>
<ResultCode>0</ResultCode>
</Response>';*/
$xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
$xml->openMemory(); //использование памяти для вывода строки
$xml->startDocument(); //установка версии XML в первом теге документа
$xml->startElement("Response"); //создание корневого узла
$xml->writeElement("TransactionId", $TransactionId);
$xml->writeElement("RevertId", $RevertId);
$xml->writeElement("TransactionExt", $TransactionExt); //запись элемента
$xml->writeElement("Amount", $Amount); //запись элемента
$xml->writeElement("ResultCode", "0"); //запись элемента
$xml->endElement(); //закрытие корневого элемента
echo $xml->outputMemory(); //завершение записи в XML
break;
default:
break;
}
Answer the question
In order to leave comments, you need to log in
Did you read the text of the error?
When you get an error, you first try to get the 0 element and its properties:
And then, already check for an error:
You should move the error check to the beginning, or use empty to check if the 0 element exists
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question