Файл: _rootinc/assist.inc.php
Строк: 125
<?
class ASSIST
{
public $url = null;
public $shopid = null;
public $user = null;
public $password = null;
public $error = null;
public function init($url,$shopid,$user,$password)
{
$this->url=$url;
$this->shopid=$shopid;
$this->user=$user;
$this->password=$password;
}
public function send($request)
{
$request = iconv("utf-8", "windows-1251", $request);
$fp = curl_init();
curl_setopt($fp, CURLOPT_URL, $this->url);
curl_setopt($fp, CURL_HTTP_VERSION_1_1, 1);
curl_setopt($fp, CURLOPT_POST, 1);
curl_setopt($fp, CURLOPT_POSTFIELDS, $request);
curl_setopt($fp, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($fp, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($fp, CURLOPT_RETURNTRANSFER,1);
curl_setopt($fp, CURLOPT_TIMEOUT, 120);
$result = curl_exec($fp);
if (@curl_errno($fp)) {
$this->error = "cURL Error ".@curl_errno($fp).": ".@curl_error($fp);
return false;
}
curl_close($fp);
$result = iconv("windows-1251", "utf-8", $result);
return $result;
}
public function getResults()
{
$results = $this->send("ShopOrderNumber=%&Shop_ID=$this->shopid&Login=$this->user&Password=$this->password&Format=4");
$result = xml2array($results);
if (is_array($result[assistresult]) and is_array($result[assistresult][0][orders][0][order])) {
return $result[assistresult][0][orders][0][order];
} else {
$results = preg_replace("/<?xml[^]]*]>/ui","",$results);
$results = "<xml>".$results."</xml>";
$results = toarray($results,"xml",1);
$firstcode = $results[assistresult][0][attributes][firstcode];
$secondcode = $results[assistresult][0][attributes][secondcode];
$this->error = "getResults: codes: $firstcode (".$this->getFirstCode($firstcode)."), $secondcode (".$this->getSecondCode($secondcode).")";
return false;
}
}
public function getFirstCode($code)
{
$firstcodes[0]="Успех";
$firstcodes[1]="Ошибка";
$firstcodes[2]="Внутренняя ошибка";
$firstcodes[3]="Отсутствие обязательного параметра";
$firstcodes[4]="Ошибка в формате параметра";
$firstcodes[5]="Неверное значение параметра";
$firstcodes[6]="Несоответствующая версия системы";
$firstcodes[7]="Ошибка аутентификации";
$firstcodes[8]="Ошибка авторизации";
$firstcodes[9]="Ошибка шифрования";
$firstcodes[10]="Отсутствие объекта";
$firstcodes[11]="Дубликатный объект";
$firstcodes[12]="Объект заблокирован";
$firstcodes[13]="Несовпадения с уже существующим в базе объектом";
$firstcodes[14]="Запрещенный объект";
$firstcodes[15]="Запрещенная операция";
$firstcodes[16]="Истекло время операции";
$firstcodes[17]="Ошибка авторизации по 3D-Secure";
return $firstcodes[$code];
}
public function getSecondCode($code)
{
$secondcodes[0]="Дополнительной информации нет";
$secondcodes[1]="Непредвиденная ошибка";
$secondcodes[2]="Сгенерированный документ слишком большой";
$secondcodes[3]="Частота запроса интерфейса превышена";
$secondcodes[4]="Интервал выборки слишком большой";
$secondcodes[5]="Ошибка шифрования ключом";
$secondcodes[6]="Ошибка расшифровки ключом";
$secondcodes[100]="Параметр Shop_IDP (Shop_ID)";
$secondcodes[101]="Параметр LOGIN";
$secondcodes[102]="Параметр PASSWORD";
$secondcodes[103]="Параметр FORMAT";
$secondcodes[104]="Параметр DATE";
$secondcodes[105]="Параметр CURRENCY";
$secondcodes[106]="Параметр CARDNUMBER";
$secondcodes[107]="Параметр ORDER_IDP (SHOPORDERNUMBER)";
$secondcodes[108]="Параметр SUBTOTAL_P";
$secondcodes[109]="Параметр DELAY";
$secondcodes[110]="Параметр COMMENT";
$secondcodes[111]="Параметр CARDTYPE (MEANTYPE)";
$secondcodes[112]="Параметр EXPIREMONTH";
$secondcodes[113]="Параметр EXPIREYEAR";
$secondcodes[114]="Параметр CARDHOLDER";
$secondcodes[115]="Параметр CVC2";
$secondcodes[116]="Параметр CLIENTIP";
$secondcodes[117]="Параметр LASTNAME";
$secondcodes[118]="Параметр FIRSTNAME";
$secondcodes[119]="Параметр MIDDLENAME";
$secondcodes[120]="Параметр EMAIL";
$secondcodes[121]="Параметр ADDRESS";
$secondcodes[122]="Параметр PHONE";
$secondcodes[123]="Параметр CITY";
$secondcodes[124]="Параметр STATE";
$secondcodes[125]="Параметр ZIP";
$secondcodes[126]="Параметр DEMORESULT";
$secondcodes[127]="Параметр LANGUAGE (ENGLISH)";
$secondcodes[128]="Параметр COUNTRY";
$secondcodes[129]="Параметры STARTDAY и/или STARTMONTH и/или STARTYEAR";
$secondcodes[130]="Параметры ENDDAY и/или ENDMONTH и/или ENDYEAR";
$secondcodes[131]="Параметр SUCCESS";
$secondcodes[132]="Параметр ZIPFLAG";
$secondcodes[133]="Параметр HEADER";
$secondcodes[134]="Параметр HEADER1";
$secondcodes[135]="Параметр DELIMITER";
$secondcodes[136]="Параметр OPENDELIMITER";
$secondcodes[137]="Параметр CLOSEDELIMITER";
$secondcodes[138]="Параметр ROWDELIMITER";
$secondcodes[139]="Параметр FIELDS";
$secondcodes[140]="Параметр SSL";
$secondcodes[141]="Параметры LOGIN и/или PASSWORD";
$secondcodes[142]="Параметры EXPIREMONTH и/или EXPIREYEAR";
$secondcodes[143]="Параметр BILLNUMBER";
$secondcodes[144]="Параметр PROTECTCODE";
$secondcodes[145]="Параметр PAYMENTTYPE";
$secondcodes[146]="Параметр WMNUMBER";
$secondcodes[147]="Параметр RPSERIES";
$secondcodes[148]="Параметр RPNUMBER";
$secondcodes[149]="Параметр ASSISTID";
$secondcodes[150]="Параметр PIN";
$secondcodes[154]="Параметр EPAYNUMBER";
$secondcodes[155]="Параметр Transaction_ID";
$secondcodes[157]="Параметр Product_ID";
$secondcodes[200]="Объект Магазин";
$secondcodes[201]="Объект Заказ";
$secondcodes[202]="Объект Покупатель";
$secondcodes[203]="Объект Кредитная карта";
$secondcodes[204]="Объект Банк";
$secondcodes[205]="Объект Процессинг";
$secondcodes[206]="Объект Терминал";
$secondcodes[207]="Объект Страна";
$secondcodes[208]="Объект Курс валюты";
$secondcodes[209]="Объект IP-адрес";
$secondcodes[210]="Объект Комисcия";
$secondcodes[211]="Объект URL";
$secondcodes[212]="Объект Режим оплаты";
$secondcodes[213]="Объект Электронный кошелек";
$secondcodes[214]="Объект Метод";
$secondcodes[215]="Объект SOAP Packet";
$secondcodes[300]="Отмена авторизации (void)";
$secondcodes[301]="Возврат средств (refund)";
$secondcodes[302]="Финансовое подтверждение (deposit)";
$secondcodes[305]="Отмена оплаты (reversal)";
return $secondcodes[$code];
}
}
?>