Настройка 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} нужно заменить на секрет из настроек