• Модуль: messageservice
  • Путь к файлу: ~/bitrix/modules/messageservice/lib/sender/sms/smsassistentby.php
  • Класс: BitrixMessageServiceSenderSmsSmsAssistentBy
  • Вызов: SmsAssistentBy::getMessageStatus
public function getMessageStatus(array $messageFields)
{
	$result = new MessageStatus();
	$result->setId($messageFields['ID']);
	$result->setExternalId($messageFields['EXTERNAL_ID']);

	if (!$this->canUse())
	{
		$result->addError(new Error(Loc::getMessage('MESSAGESERVICE_SENDER_SMS_SMSASTBY_CAN_USE_ERROR')));
		return $result;
	}

	$params = array(
		'status' => [
			'msg' => [
				[
					'sms_id' => $result->getExternalId()
				]
			]
		]
	);

	$apiResult = $this->callJsonApi('statuses', $params);
	if (!$apiResult->isSuccess())
	{
		$result->addErrors($apiResult->getErrors());
	}
	else
	{
		$resultData = $apiResult->getData();
		$smsData = current($resultData['status']['msg']);

		if (!$smsData)
		{
			$result->addError(new Error($this->getErrorMessage(-1000)));
		}

		$result->setStatusText($smsData['sms_status']);
		$result->setStatusCode(self::resolveStatus($smsData['sms_status']));
	}

	return $result;
}