• Модуль: messageservice
  • Путь к файлу: ~/bitrix/modules/messageservice/lib/Providers/Edna/SMS/Old/Sender.php
  • Класс: Bitrix\MessageService\Providers\Edna\SMS\Old\Sender
  • Вызов: Sender::sendMessage
public function sendMessage(array $messageFields): SendMessage
{
	if (!$this->supportChecker->canUse())
	{
		$result = new SendMessage();
		$result->addError(new Error('Cant use'));
		return $result;
	}


	$validationResult = $this->validatePhoneNumber($messageFields['MESSAGE_TO']);

	if (!$validationResult->isSuccess())
	{
		$result = new SendMessage();
		$result->addErrors($validationResult->getErrors());

		return $result;

	}
	$phoneNumber = $validationResult->getData()['validNumber'];

	$params = [
		'id' => uniqid('', true),
		'subject' => $messageFields['MESSAGE_FROM'],
		'address' => $phoneNumber,
		'priority' => 'high',
		'contentType' => 'text',
		'content' => Emoji::decode($messageFields['MESSAGE_BODY']),
	];

	$externalSender = new ExternalSender(
		$this->optionManager->getOption(InternalOption::API_KEY, ''),
		Constants::API_ENDPOINT
	);
	$apiResult = $externalSender->callExternalMethod('smsOutMessage', $params);

	$result = new SendMessage();
	$result->setServiceRequest($apiResult->getHttpRequest());
	$result->setServiceResponse($apiResult->getHttpResponse());

	if (!$apiResult->isSuccess())
	{
		$result->addErrors($apiResult->getErrors());

		return $result;
	}

	$apiData = $apiResult->getData();

	$result->setExternalId($apiData['id']);
	$result->setAccepted();

	return $result;
}