- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/cashboxorangedata.php
- Класс: BitrixSaleCashboxCashboxOrangeData
- Вызов: CashboxOrangeData::send
private function send($url, $headers, $data = '')
{
$context = $this->createStreamContext();
$errNumber = '';
$errString = '';
$client = stream_socket_client($url, $errNumber, $errString, 5, STREAM_CLIENT_CONNECT, $context);
$result = new Result();
if ($client !== false)
{
Logger::addDebugInfo($headers.$data);
fputs($client, $headers.$data);
$response = stream_get_contents($client);
fclose($client);
Logger::addDebugInfo($response);
[$responseHeaders, $content] = explode("rnrn", $response);
$httpCode = $this->extractResponseStatus($responseHeaders);
$result->addData(['http_code' => $httpCode, 'content' => $content]);
if (
$httpCode !== static::RESPONSE_HTTP_CODE_201
&&
$httpCode !== static::RESPONSE_HTTP_CODE_200
)
{
$content = $this->decode($content);
if (isset($content['errors']))
{
$error = implode("n", $content['errors']);
}
else
{
$error = LocalizationLoc::getMessage('SALE_CASHBOX_ORANGE_DATA_ERROR_RESPONSE_'.$httpCode);
if (!$error)
{
$error = LocalizationLoc::getMessage('SALE_CASHBOX_ORANGE_DATA_ERROR_CHECK_PRINT');
}
}
return $result->addError(new ErrorsError($error));
}
}
else
{
$result->addError(
new ErrorsError(
LocalizationLoc::getMessage('SALE_CASHBOX_ORANGE_DATA_ERROR_SEND_QUERY')
)
);
$error = new ErrorsError($errNumber.': '.$errString);
Logger::addError($error->getMessage(), $this->getField('ID'));
}
return $result;
}