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

	$sid = $this->getOption('account_sid');
	if (!$sid)
	{
		$result->addError(new Error(Loc::getMessage('MESSAGESERVICE_SENDER_SMS_TWILIO_CAN_USE_ERROR')));
		return $result;
	}

	$apiResult = $this->callExternalMethod(
		HttpClient::HTTP_GET,
		'Accounts/'.$sid.'/Messages/'.$result->getExternalId()
	);
	if (!$apiResult->isSuccess())
	{
		$result->addErrors($apiResult->getErrors());
	}
	else
	{
		$resultData = $apiResult->getData();
		$result->setStatusCode($resultData['status']);
		$result->setStatusText($resultData['status']);
		if (in_array($resultData['status'],
			array('accepted', 'queued', 'sending', 'sent', 'delivered', 'undelivered', 'failed')))
		{
			$result->setStatusText(
				Loc::getMessage('MESSAGESERVICE_SENDER_SMS_TWILIO_MESSAGE_STATUS_'.mb_strtoupper($resultData['status']))
			);
		}
	}

	return $result;
}