Показать страницуСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== СОРМ MFI SOFT ====== {{:billing:configuration:2020-07-22_14-15-18.png?100|}} https://www.mfisoft.ru/ ===== Настройка в биллинге ===== Переходим в меню системных опций, выбираем СОРМ MFI SOFT Включаем "Разрешить", придумываем пароль в поле Секрет (в дальнейшем в скриптах API_KEY) При желании можно настроить фильтр выгрузок по тарифам если необходимо выгружать данные частично {{:billing:configuration:2020-07-22_14-17-30.png?400|}} ===== Настройка файла конфигурации ===== Редактируем под себя данные для справочников: regions, doc_type, radius. <code> { "regions":[ { "ID":"1", "BEGIN_TIME":"2012-12-31 21:59:59", "DESCRIPTION":"ООО \"Пупкин\" г. Москва" } ], "doc_type":[ { "DOC_TYPE_ID":"1", "BEGIN_TIME":"2012-12-31 21:59:59", "DESCRIPTION":"Паспорт", "REGION_ID":"1" } ], "radius":[ { "BEGIN_TIME":"2012-12-31 21:59:59", "END_TIME":"2024-12-31 21:59:59", "REGION_ID":"1", "GATE_TYPE":"7", "ADDRESS_TYPE_ID":"1", "ADDRESS_TYPE":"3", "UNSTRUCT_INFO":"г.Москва, ул Ленина, 47А, офис 1", "DESCRIPTION":"AAA Сервер (Авторизация)", "IP_TYPE":"0", "IPV4":"C0A801F7", "IP_PORT":"0714" }, { "BEGIN_TIME":"2012-12-31 21:59:59", "END_TIME":"2024-12-31 21:59:59", "REGION_ID":"1", "GATE_TYPE":"7", "ADDRESS_TYPE_ID":"1", "ADDRESS_TYPE":"3", "UNSTRUCT_INFO":"г.Москва, ул Ленина, 47А, офис 1", "DESCRIPTION":"AAA Сервер (Аккаунтинг)", "IP_TYPE":"0", "IPV4":"C0A801F7", "IP_PORT":"0715" } ] } </code> Затем проверяем отредактированные данные на сайте https://jsonformatter.curiousconcept.com/ . Если все ок то должны получить - зеленую надпись VALID. Сохраняем полученнное содержимое в файл config.json. Данный файл ложим на сервере с админкой по пути ../modules/mfi/config.json относительно admin/index.php. т.е. рядом с папкой admin/ надо создать (если еще нет) modules/mfi/. Если все верно сделали то в СОРМЕ должны подтягиваться данные из конфига при выгрузке указанных справочников. ===== Скрипт выгрузки[Обновлен 2020-04-14] ===== <note important>Скрипты дорабатываются и могут изменяться!</note> В данном скрипте необходимо подставить свои данные в переменные:\\ **ADMIN_URL**, **API_KEY**, **FTP_ADDRESS**.\\ Так же, по требованиям MFISoft, необходимо несколько аккаунтов ftp под каждый тип выгрузки (cdr, dict, abon, pay),\\ в скрипте необходимо заменить пароль **FTP_PASS** под каждый такой аккаунт.\\ Скрипт запуска **unloading.sh** <file sh> #!/bin/bash WORK_DIR="/root/" ADMIN_URL="https://admin.isp.demo" API="mfisoft" API_KEY="0123456789" EXTENSION="txt" EXTRA="" FTP_ENABLED=1 FTP_ADDRESS="192.168.0.1" 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 ) EXTRA="&full=true" else REQUESTS=$1 fi else # обычный запуск REQUESTS=( ABONENT ABONENT_SRV ABONENT_ADDR ABONENT_ID DOC_TYPE REGIONS PAY_TYPE PAYMENT IP_PLAN COMMUTATORS GATEWAYS SUPPLEMENTARY_SERVICE IP_GATEWAY ) fi cdr="CONNECTION_AAA" dict="REGIONS DOC_TYPE PAY_TYPE IP_DATA_POINTS IP_PLAN COMMUTATORS GATEWAYS SUPPLEMENTARY_SERVICE IP_GATEWAY" abon="ABONENT ABONENT_ADDR ABONENT_ID ABONENT_SRV" pay="PAYMENT" 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 work=0 if echo $cdr | grep -w $REQUEST > /dev/null; then work=1 FTP_USER="cdr" FTP_PASS="1234567890" fi if echo $dict | grep -w $REQUEST > /dev/null; then work=1 FTP_USER="dict" FTP_PASS="1234567890" fi if echo $abon | grep -w $REQUEST > /dev/null; then work=1 FTP_USER="abon" FTP_PASS="1234567890" fi if echo $pay | grep -w $REQUEST > /dev/null; then work=1 FTP_USER="pay" FTP_PASS="1234567890" fi if [ "$work" -eq "1" ]; then if [ ! -z $FILE ]; then echo "`date` $FTP_ADDRESS $FTP_USER, SEND FILE: $FILE" ftpupload fi 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/ajax/index/mfisoft/?key=$API_KEY&request=ABONENT&debug=true </code> billing/configuration/mfisoft.txt Последнее изменение: 7 мес. назад — Александр Дудяк