2namespace Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests;
5use Bitrix\Main\Web\Json;
6use Bitrix\Sale\Delivery;
7use Bitrix\Main\Web\HttpClient;
8use Bitrix\Main\Localization\Loc;
9use Bitrix\Sale\Delivery\Requests;
10use Sale\Handlers\Delivery\AdditionalHandler;
12Loc::loadMessages(__FILE__);
22 protected $httpClient =
null;
23 protected $url =
"https://otpravka-api.pochta.ru";
29 protected $deliveryService =
null;
35 public function __construct(Delivery\Services\Base $deliveryService, HttpClient $httpClient)
37 $this->deliveryService = $deliveryService;
38 $deliveryConfig = $deliveryService->getConfigValues();
40 $this->httpClient = $httpClient;
42 $this->httpClient->setHeader(
"Authorization",
"AccessToken ".$deliveryConfig[
'MAIN'][
'OTPRAVKA_AUTH_TOKEN']);
43 $this->httpClient->setHeader(
"X-User-Authorization",
"Basic ".$deliveryConfig[
'MAIN'][
'OTPRAVKA_AUTH_KEY']);
44 $this->httpClient->setHeader(
"Content-Type",
"application/json;charset=UTF-8");
50 protected function getUrl()
52 return $this->url.$this->path;
60 protected function convertResponse($rawData, $requestData)
62 $result =
new Requests\Result();
72 public function process(
array $shipmentIds,
array $additional =
array())
74 $bodyResult = $this->createBody($shipmentIds, $additional);
76 if(!$bodyResult->isSuccess())
79 $result = $this->send($bodyResult->getData(), $additional);
80 $result->addResults($bodyResult->getResults());
89 public function createBody(
array $shipmentIds,
array $additional =
array())
91 return new Requests\Result();
101 $result =
new Requests\Result();
102 $jsonData = !empty($requestData) ? Json::encode($requestData) : null;
105 if(@$this->httpClient->query($this->type, $this->getUrl(), $jsonData))
107 $httpRes = $this->httpClient->getResult();
110 $errors = $this->httpClient->getError();
112 if(!$httpRes && !empty(
$errors))
114 foreach(
$errors as $errorCode => $errMes)
116 if($errMes ==
'Socket connection error.')
118 $errMes = Loc::getMessage(
119 'SALE_DLVRS_ADD_DREQ_RBASE_SEND_ERROR',
120 array(
'#URL#' => $this->url)
140 $status = $this->httpClient->getStatus();
148 $message = Loc::getMessage(
'SALE_DLVRS_ADD_DREQ_RBASE_01');
152 $message = Loc::getMessage(
'SALE_DLVRS_ADD_DREQ_RBASE_02');
156 $message = Loc::getMessage(
'SALE_DLVRS_ADD_DREQ_RBASE_03');;
160 $message = Loc::getMessage(
'SALE_DLVRS_ADD_DREQ_RBASE_INTERNAL_ERROR');;
170 $convertResult = $this->convertResponse(
$response, $requestData);
172 if(!$convertResult->isSuccess())
173 $result->addErrors($convertResult->getErrors());
175 $result->addResults($convertResult->getResults());
176 $result->setData($convertResult->getData());
187 public function getFormFields(
array $entityIds)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)