• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/sms/provider/smsru.php
  • Класс: Bitrix\Crm\Integration\Sms\Provider\SmsRu
  • Вызов: SmsRu::callExternalMethod
private function callExternalMethod($method, $params)
{
	$url = 'https://sms.ru/'.$method;

	$httpClient = new HttpClient(array(
		"socketTimeout" => 10,
		"streamTimeout" => 30,
		"waitResponse" => true,
	));
	$httpClient->setHeader('User-Agent', 'Bitrix24');
	$httpClient->setCharset('UTF-8');

	$isUtf = Application::getInstance()->isUtfMode();

	if (!$isUtf)
	{
		$params = \Bitrix\Main\Text\Encoding::convertEncoding($params, SITE_CHARSET, 'UTF-8');
	}
	$params['json'] = 1;

	$result = new Result();
	$answer = array();

	if ($httpClient->query(HttpClient::HTTP_POST, $url, $params) && $httpClient->getStatus() == '200')
	{
		$answer = $this->parseExternalAnswer($httpClient->getResult());
	}

	$answerCode = isset($answer['status_code']) ? (int)$answer['status_code'] : 0;

	if ($answerCode !== 100)
	{
		$result->addError(new Error($this->getErrorMessage($answerCode)));
	}
	else
	{
		$result->setData($answer);
	}

	return $result;
}