• Модуль: messageservice
  • Путь к файлу: ~/bitrix/modules/messageservice/lib/sender/sms/smsassistentby.php
  • Класс: BitrixMessageServiceSenderSmsSmsAssistentBy
  • Вызов: SmsAssistentBy::sendMessage
public function sendMessage(array $messageFields)
{
	if (!$this->canUse())
	{
		$result = new SendMessage();
		$result->addError(new Error(Loc::getMessage('MESSAGESERVICE_SENDER_SMS_SMSASTBY_CAN_USE_ERROR')));
		return $result;
	}

	$message = [
		'recipient' => $messageFields['MESSAGE_TO'],
		'message' => $this->prepareMessageBodyForSend($messageFields['MESSAGE_BODY']),
		'validity_period' => 24,
		'webhook_url' => $this->getCallbackUrl()
	];

	if (ModuleManager::isModuleInstalled('bitrix24'))
	{
		$message['Vendor'] = 'Bitrix24';
	}

	if ($messageFields['MESSAGE_FROM'])
	{
		$message['sender'] = $messageFields['MESSAGE_FROM'];
	}

	$result = new SendMessage();
	$apiResult = $this->callPlainApi('send_sms', $message);
	$result->setServiceRequest($apiResult->getHttpRequest());
	$result->setServiceResponse($apiResult->getHttpResponse());
	$resultData = $apiResult->getData();

	if (!$apiResult->isSuccess())
	{
		$result->addErrors($apiResult->getErrors());
	}
	else
	{
		$smsId = $resultData['response'];

		if ($smsId <= 0)
		{
			$result->addError(new Error($this->getErrorMessage(-1000)));
		}
		else
		{
			$result->setExternalId($smsId);
			$result->setAccepted();
		}
	}

	return $result;
}