<?php
// Attach the event handler globally
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
"messageservice",
"OnMessageServiceProvidersBuildList",
"addMobizonProvider"
);
function addMobizonProvider()
{
// Force the Message Service module to load first
if (\Bitrix\Main\Loader::includeModule("messageservice"))
{
// Define the class only if it hasn't been defined yet
if (!class_exists("MobizonSmsProvider"))
{
class MobizonSmsProvider extends \Bitrix\MessageService\Sender\Base
{
// === YOUR MOBIZON CREDENTIALS ===
private $apiKey = 'PASTE_YOUR_MOBIZON_API_KEY_HERE';
private $senderId = 'Premiera'; // Replace with your approved Sender ID
// ================================
public function getId() { return 'mobizon_kz'; }
public function getName() { return 'Mobizon Kazakhstan'; }
public function getShortName() { return 'mobizon_kz'; }
public function canUse() { return true; }
public function getFromList() {
return [['id' => $this->senderId, 'name' => $this->senderId]];
}
public function sendMessage(array $messageFields) {
$result = new \Bitrix\MessageService\Sender\Result\SendMessage();
$httpClient = new \Bitrix\Main\Web\HttpClient();
$phone = preg_replace('/[^0-9]/', '', $messageFields['MESSAGE_TO']);
$text = $messageFields['MESSAGE_BODY'];
$url = "https://api.mobizon.kz/service/message/sendsmsmessage";
$url .= '?recipient=' . urlencode($phone);
$url .= '&text=' . urlencode($text);
$url .= '&from=' . urlencode($this->senderId);
$url .= '&apiKey=' . urlencode($this->apiKey);
$response = $httpClient->get($url);
if ($response === false) {
$result->addError(new \Bitrix\Main\Error('Network connection failed.'));
return $result;
}
$data = json_decode($response, true);
if (isset($data['code']) && $data['code'] === 0) {
$result->setId($data['data']['messageId']);
$result->setStatus(\Bitrix\MessageService\MessageStatus::ACCEPTED);
} else {
$errorMsg = isset($data['message']) ? $data['message'] : 'API Error';
$result->addError(new \Bitrix\Main\Error($errorMsg));
}
return $result;
}
}
}
return [new MobizonSmsProvider()];
}
}
?>
[Error] Undefined constant "SITE_TEMPLATE_PATH" (0) /home/bitrix/www/bitrix/modules/main/include/epilog_before.php:93 #0: require /home/bitrix/www/bitrix/modules/main/include/epilog.php:2 #1: require_once(string) /home/bitrix/www/bitrix/footer.php:4 #2: require(string) /home/bitrix/www/local/php_interface/init.php:72 #3: include_once(string) /home/bitrix/www/bitrix/modules/main/include.php:140 #4: require_once(string) /home/bitrix/www/bitrix/modules/main/include/prolog_before.php:19 #5: require_once(string) /home/bitrix/www/bitrix/modules/main/include/prolog.php:10 #6: require_once(string) /home/bitrix/www/bitrix/header.php:1 #7: require(string) /home/bitrix/ext_www/test.premiera.kz/catalog/index.php:2 #8: include_once(string) /home/bitrix/www/bitrix/modules/main/include/urlrewrite.php:128 #9: include_once(string) /home/bitrix/www/bitrix/urlrewrite.php:2 ----------