billing:configuration:sormuz

Настройка SORM UZ (Узбекистан)

Переходим в меню системных опций, раздел внешних интеграций и выбираем СОРМ Uz


Включаем "Разрешить", придумываем пароль в поле Секрет (в дальнейшем в скриптах API_KEY)
При желании можно настроить фильтр выгрузок по тарифам если необходимо выгружать данные частично

Скрипты дорабатываются и могут изменяться!

В данном скрипте необходимо подставить свои данные в переменные:
ADMIN_URL, API_KEY, FTP_USER, FTP_PASS, FTP_ADDRESS.

Скрипт запуска 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;
}
# ежедневная выгрузка
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} нужно заменить на секрет из настроек

  • billing/configuration/sormuz.txt
  • Последнее изменение: 13 мес. назад
  • alexd