Показать страницуСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Настройка SORM UZ (Узбекистан) ====== ===== Настройка в биллинге ===== Переходим в меню системных опций, раздел внешних интеграций и выбираем **СОРМ Uz** {{:billing:configuration:sorm_uz.jpg?400|}} \\ Включаем "Разрешить", придумываем пароль в поле Секрет (в дальнейшем в скриптах API_KEY) \\ При желании можно настроить фильтр выгрузок по тарифам если необходимо выгружать данные частично ===== Скрипт выгрузки ===== <note important>Скрипты дорабатываются и могут изменяться!</note> В данном скрипте необходимо подставить свои данные в переменные:\\ **ADMIN_URL**, **API_KEY**, **FTP_USER**, **FTP_PASS**, **FTP_ADDRESS**.\\ <alert type="warning">Скрипт использует **wget** и **ftp**, убедитесь что данные программы установлены на сервере</alert> Скрипт запуска **unloading.sh** <file 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 </file> ===== Скрипт загрузчика ===== **downloader.php** <file 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; } </file> ===== CRON ===== <code> # ежедневная выгрузка 00 06 * * * root /root/unloading.sh # выгрузка сессий каждые 15 мин. */15 * * * * root /root/unloading.sh CONNECTION_AAA </code> ===== Первый запуск ===== Так как при первом запуске необходима полная выгрузка платежей (далее ежедневная), \\ необходимо вручную запустить скрипт с параметром **ACTIVATE**:\\ <code> /root/unloading.sh ACTIVATE </code> ===== Режим отладки ===== Для запуска режима чекера данных запустить в браузере: <code> 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 </code> **{SECRET}** нужно заменить на секрет из настроек billing/configuration/sormuz.txt Последнее изменение: 11 мес. назад — alexd