Настройка SORM UZ (Узбекистан)
Настройка в биллинге
Переходим в меню системных опций, раздел внешних интеграций и выбираем СОРМ Uz
Включаем "Разрешить", придумываем пароль в поле Секрет (в дальнейшем в скриптах API_KEY)
При желании можно настроить фильтр выгрузок по тарифам если необходимо выгружать данные частично
Скрипт выгрузки
Скрипты дорабатываются и могут изменяться!
В данном скрипте необходимо подставить свои данные в переменные:
ADMIN_URL, API_KEY, FTP_USER, FTP_PASS, FTP_ADDRESS.
Скрипт использует wget и ftp, убедитесь что данные программы установлены на сервере
Скрипт запуска unloading.sh
#!/bin/bash
WORK_DIR="/root/"
ADMIN_URL="https://admin.isp.demo"
API="sormuz"
API_KEY="0123456789"
EXTENSION="txt"
EXTRA=""
FTP_ENABLED=1
FTP_ADDRESS="192.168.0.1"
FTP_USER=""
FTP_PASS=""
FTP_DIR="/"
WGET=$(which wget)
PHP=$(which php)
FTP=$(which ftp)
ftpupload() {
$FTP -n $FTP_ADDRESS <<END_SCRIPT
quote USER $FTP_USER
quote PASS $FTP_PASS
binary
put $FILE
quit
END_SCRIPT
}
if [ "$#" -gt 0 ]; then
# особые параметры
if [ "$1" == "ACTIVATE" ]; then
REQUESTS=(
PAYMENT
CONNECTION_AAA
)
EXTRA="&full=true"
else
REQUESTS=$1
fi
else
# обычный запуск
REQUESTS=(
ABONENT
PAYMENT
)
fi
if [ ! -z $WGET ]; then
cd $WORK_DIR
for REQUEST in ${REQUESTS[*]}
do
URL="$ADMIN_URL/ajax/index/$API/?key=$API_KEY&request=$REQUEST&file=true$EXTRA"
RESULT=$($PHP downloader.php $URL)
echo "$RESULT"
if [ "$RESULT" == "1" ]; then
echo "error"
exit 1
else
FILE="$RESULT"
fi
if [ "$FTP_ENABLED" -eq 1 ]; then
if [ ! -z $FILE ]; then
echo "`date` $FTP_ADDRESS $FTP_USER, SEND FILE: $FILE"
ftpupload
fi
fi
if [ ! -z $FILE ]; then
rm -f $FILE
fi
done
else
echo "command 'wget' not found!"
fi
exit 0
Скрипт загрузчика
downloader.php
<?php if( isset($argv[1]) AND count($argv) == 2 ) { $URL=$argv[1]; $ch = curl_init($URL); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($data, 0, $header_size); $body = substr($data, $header_size); curl_close($ch); $filename = explode ("filename=", $header); if( isset($filename[1]) ) { $name = str_replace('"', "", $filename[1]); $name = str_replace(array("\n", "\r"), '', $name); file_put_contents($name, $body); echo "{$name}"; } } else { echo 0; }
CRON
# ежедневная выгрузка 00 06 * * * root /root/unloading.sh # выгрузка сессий каждые 15 мин. */15 * * * * root /root/unloading.sh CONNECTION_AAA
Первый запуск
Так как при первом запуске необходима полная выгрузка платежей (далее ежедневная),
необходимо вручную запустить скрипт с параметром ACTIVATE:
/root/unloading.sh ACTIVATE
Режим отладки
Для запуска режима чекера данных запустить в браузере:
https://admin.isp.demo/json/index/sormuz/key/{SECRET}/request/ABONENT/validate/true
https://admin.isp.demo/json/index/sormuz/key/{SECRET}/request/PAYMENT/validate/true
https://admin.isp.demo/json/index/sormuz/key/{SECRET}/request/CONNECTION_AAA/validate/true
{SECRET} нужно заменить на секрет из настроек