- Модуль: 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;
}