Это старая версия документа!
SMS Ukraine
SMS рассылка от службы SMS Ukraine
Пути нахождения скрипта
Скрипт находиться по пути от корня mikbill
./admin/res/smsukr
файл скрипта
smsukr.php
По умолчанию скрипт в кодировке Koi8-R
в зависимости от операционной системы необходимо изменить кодировку файла.
Например по умолчанию в разных OS разная кодировка:
FreeBSD - koi8-r Centos - UTF-8 Ubuntu/Debian - UTF-8
Определяем кодировку OS
Чтобы узнать кодировку Вашего сервера выполните команду
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
далее просто добавите в 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 адрес не разрешен для осуществленя запросов
Подробности по другим кодам и т д рекомендуется на их сервере…так как мы не авторы этой службы.
Обратная связь
Обсуждаем и делимся наработками на форуме.