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

	$message = [
		'recepient' => $messageFields['MESSAGE_TO'],
		'sms_text' => $this->prepareMessageBodyForSend($messageFields['MESSAGE_BODY']),
	];

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

	$result = new SendMessage();
	$apiResult = $this->callJsonApi('sms_send', [
		'message' => [
			'default' => [
				'validity_period' => 24
			],
			'msg' => [
				$message
			]
		]
	]);
	$resultData = $apiResult->getData();

	if (!$apiResult->isSuccess())
	{
		$result->addErrors($apiResult->getErrors());
	}
	else
	{
		$smsData = current($resultData['message']['msg']);

		if (!$smsData)
		{
			$result->addError(new Error($this->getErrorMessage(-1000)));
		}
		else
		{
			if (isset($smsData['sms_id']))
			{
				$result->setExternalId($smsData['sms_id']);
			}

			if ($smsData['error_code'] > 0)
			{
				$result->addError(new Error($this->getErrorMessage($smsData['error_code'])));
			}
			else
			{
				$result->setAccepted();
			}
		}
	}

	return $result;
}