- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/paysystem/applepay.php
- Класс: BitrixSalePaySystemApplePay
- Вызов: ApplePay::sendRequest
private function sendRequest($url, array $params = array()): ServiceResult
{
$result = new ServiceResult();
$httpClient = new MainWebHttpClient();
foreach ($this->getHeaders() as $name => $value)
{
$httpClient->setHeader($name, $value);
}
$httpClient->setContextOptions($this->getContextOptions($this->applePayCert));
$postData = null;
if ($params)
{
$postData = static::encode($params);
}
Logger::addDebugInfo("ApplePay: request data: ".$postData);
$response = $httpClient->post($url, $postData);
if ($response === false)
{
$errors = $httpClient->getError();
foreach ($errors as $code => $message)
{
$result->addError(new MainError($message, $code));
}
return $result;
}
Logger::addDebugInfo("ApplePay: response data: ".$response);
if ($response = static::decode($response))
{
$httpStatus = $httpClient->getStatus();
if ($httpStatus !== self::HTTP_RESPONSE_CODE_OK)
{
if (isset($response["statusMessage"]))
{
$result->addError(
new MainError(
Loc::getMessage(
"SALE_APPLE_PAY_HTTP_STATUS_MESSAGE",
[
"#HTTP_STATUS#" => $httpStatus,
"#STATUS_MESSAGE#" => $response["statusMessage"],
]
)
)
);
}
else
{
$result->addError(
new MainError(
Loc::getMessage(
"SALE_APPLE_PAY_HTTP_STATUS_CODE",
[
"#HTTP_STATUS#" => $httpStatus,
]
)
)
);
}
}
$result->setData($response);
}
return $result;
}