Это старая версия документа!
SMS Pilot
SMS рассылка от службы SMS Pilot Удобно для России и других стран СНГ
Пути нахождения скрипта
Скрипт находиться по пути от корня mikbill
./admin/res/smspilot
файл скрипта
sms.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 ./sms.php > ./sms.php2 mv ./sms.php2 ./sms.php
Задаем значения переменных
теперь открываем файл текстовым редактором
mcedit ./sms.php
Латиницей имя компании - будет показано как номер отправителя.
$COMPANY="ISP";
Базовый текст сообщения
$TEXT_base="Уважаемый абонент, Ваш баланс составляет ";
Валюту
$UE="Руб";
теперь открываем файл текстовым редактором
mcedit ./smspilot.php
Вначале файла такие строки.
if (!defined('SMSPILOT_API')) define('SMSPILOT_API', 'http://smspilot.ru/api.php'); if (!defined('SMSPILOT_APIKEY')) define('SMSPILOT_APIKEY', 'key'); if (!defined('SMSPILOT_CHARSET')) define('SMSPILOT_CHARSET', 'UTF-8'); if (!defined('SMSPILOT_FROM')) define('SMSPILOT_FROM', 'smspilot.ru'); // new in 1.8.1
Из них нужно задать значение SMSPILOT_APIKEY которые вы получите после регистрации в системе. Получится что то такого вида
if (!defined('SMSPILOT_APIKEY')) define('SMSPILOT_APIKEY', 'SDjkda34s898923423423423');
Остальные строки без изменений.
Итоговая кодировка
Находим поиском строки ( их будет несколько ближе к концу файла)
$TEXT=iconv("KOI8-U","UTF-8",$TEXT);
Для Koi8-R оставляем все без изменений, а для базовой UTF-8 просто задокументируем это строку
Смысл этой строки в том чтобы преобразовать итоговое сообщение в кодировку сервера. Сервер СМС Pilot принимает сообщения только в UTF-8.
Соответственно если у Вас Koi8-r то оставляем эту строку без изменений. Если же UTF-8 то просто удаляем или комментируем строку.
# $TEXT=iconv("KOI8-U","UTF-8",$TEXT);
С другими кодировками действия антологичные 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 IN (409,2137)";
Правим ее под себя. Например ниже разошлет только должникам
$$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." ".$UE;
Думаю этого достаточно чтобы дальше поменять все под любые варианты своих нужд.
Запуск
По пути от корня mikbill
./admin/sys/scripts
находиться скрипт
mikbill_sms.sh
пример содержимого
#!/bin/sh cd /var/www/mikbill/admin/res/smspilot /usr/bin/php -q ./sms.php
далее просто добавите в cron запуск mikbill_sms.sh или же запускайте его вручную когда Вам необходимо.
Дополнительно
* /admin/res/smspilot/smspilot_balance.php - уведомление о пополнение баланса СМС-Пилот
( в этой же папке mikbill_payment_event.sh там пример как включить скрипт в работу)
* /admin/res/smspilot/example/sms_1.php - Уведомление о нехватке абонплаты на след. месяц
* /admin/res/smspilot/example/sms_2.php - поздравление с днем рождения абонентов
Обратная связь
Обсуждаем и делимся наработками на форуме.