• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/cashboxyookassa.php
  • Класс: BitrixSaleCashboxCashboxYooKassa
  • Вызов: CashboxYooKassa::send
protected function send(string $url, SalePayment $payment, array $fields, string $method = self::SEND_METHOD_HTTP_POST): SaleResult
{
	$result = new SaleResult();

	$httpClient = new MainWebHttpClient();
	$headers = $this->getHeaders($payment);
	foreach ($headers as $name => $value)
	{
		$httpClient->setHeader($name, $value);
	}

	if ($method === self::SEND_METHOD_HTTP_POST)
	{
		$data = self::encode($fields);
		Logger::addDebugInfo(__CLASS__ . ': request data: ' . $data);
		$response = $httpClient->post($url, $data);
	}
	else
	{
		$uri = new Uri($url);
		$uri->addParams($fields);
		$response = $httpClient->get($uri->getUri());
	}

	if ($response === false || $response === '')
	{
		$result->addError(new Error(Loc::getMessage('SALE_CASHBOX_YOOKASSA_ERROR_EMPTY_RESPONSE')));

		$errors = $httpClient->getError();
		foreach ($errors as $code => $message)
		{
			$result->addError(new Error($message, $code));
		}

		return $result;
	}

	Logger::addDebugInfo(__CLASS__ . ': response data: ' . $response);

	$response = static::decode($response);
	if (!$response)
	{
		$result->addError(new Error(Loc::getMessage('SALE_CASHBOX_YOOKASSA_ERROR_DECODE_RESPONSE')));
		return $result;
	}

	$result->setData($response);

	return $result;
}