SMS Ukraine

SMS рассылка от службы SMS Ukraine

Скрипт находиться по пути от корня mikbill

./admin/res/smsukr

файл скрипта

smsukr.php

По умолчанию скрипт в кодировке Koi8-R

в зависимости от операционной системы необходимо изменить кодировку файла.

Например по умолчанию в разных OS разная кодировка:

FreeBSD - koi8-r
Centos - UTF-8
Ubuntu/Debian - UTF-8

Чтобы узнать кодировку Вашего сервера выполните команду

locale

Пример на Centos:

# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
iconv -f koi8-r -t utf-8 ./smsukr.php > ./smsukr.php2
mv ./smsukr.php2 ./smsukr.php

теперь открываем файл текстовым редактором

mcedit ./smsukr.php

логин с сайта

$SMS_UKR_LOGIN="login";

пароль с сайта

$SMS_UKR_PASS="pass";

Латиницей имя компании - будет показано как номер отправителя.

$COMPANY="ISP";

Базовый текст сообщения

$TEXT_base="Уважаемый абонент, Ваш баланс составляет ";

Находим поиском строку

$querry=iconv("KOI8-U","UTF-8",$querry);

Смысл этой строки в том чтобы преобразовать итоговое сообщение в кодировку сервера. Сервер СМС Ukraine принимает сообщения только в UTF-8.

Соответственно если у Вас Koi8-r то оставляем эту строку без изменений. Если же UTF-8 то просто удаляем или задокументируем строку.

# $querry=iconv("KOI8-U","UTF-8",$querry);

С другими кодировками действия антологичные Koi8-r.

Функция

function get_users_dolgniki($LINK,$stdlog)

Берем строку

 $SQL_Querry="SELECT uid,user,deposit,sms_tel,mob_tel,phone FROM " . BILL_AUTH_TABLE . " WHERE `uid` LIKE 409 ";

Правим ее под себя. Например ниже разошлет только должникам

 $SQL_Querry="SELECT uid,user,deposit,sms_tel,mob_tel,phone FROM " . BILL_AUTH_TABLE . " WHERE deposit<0 ";

Подобным образом можно сделать новую функцию, например чтобы получить конкретный тариф

 $SQL_Querry="SELECT uid,user,deposit,sms_tel,mob_tel,phone FROM " . BILL_AUTH_TABLE . " WHERE gid=1 ";
Рекомендуется добавлять свои функции для подох рассылок и делать их в разных файлах.

Строка получает список должников:

$users_dolgnki=get_users_dolgniki($LINK,$stdlog);

Далее идет обработка этого сипска и сам текст каждой СМС формируется этими строками.

$deposit=round($value['deposit'],2);
$TEXT=$TEXT_base.$deposit." Грн";

Думаю этого достаточно чтобы дальше поменять все под любые варианты своих нужд.

Последняя строка файла

var_dump($return);

Показывает итог отправки.

После наладки скрипта рекомендуется за комментировать данную строку.

по пути от корня mikbill

./admin/sys/scripts

находиться скрипт

mikbill_sms.sh

пример содержимого

#!/bin/sh

cd /var/www/mikbill/admin/res/smsukr
/usr/bin/php -q ./smsukr.php
Не забудьте путь к php или скрипту меняется в зависимости от Вашей OS.

далее просто добавите в cron запуск mikbill_sms.sh или же запускайте его вручную когда Вам необходимо.

Коды ошибок с сайта SMS-Ukraine (возвращает их сервер)

При отправке XML документа могут возвращаться следующие коды ошибок:
    ERR_UNKNOWN = 200,      // Неизвестная ошибка
    ERR_FORMAT = 201,       // Неправильный формат документа
    ERR_AUTHORIZATION = 202, // Ошибка авторизации
    ERR_API_DISABLE => 209,     // АПИ отключено пользователем
    ERR_IP_DENIED => 210     // IP адрес не разрешен для осуществленя запросов

Подробности по другим кодам и т д рекомендуется на их сервере…так как мы не авторы этой службы.

Обсуждаем и делимся наработками на форуме.

  • billing/preferences/smsukraine.txt
  • Последние изменения: 5 лет назад
  • — Алексей Ларюшкин