====== Megogo ======
{{ :megogologo.png? |}}
Модуль складається з декількох частин, і призначений для управління і тарифікації підписок користувачів на сервісі [[http://megogo.net|megogo.net]]. Модуль підтримує як помісячну так і подобову моделі нарахування АП.
====== Базова конфігурація Ubilling ======
З точки зору Ubilling усе керується такими опціями [[alteriniconf|alter.ini]]:
MG_ENABLED=1
MG_PARTNERID="testpartner"
MG_PREFIX="OurISP"
MG_SALT="guessmeifyoucan"
MG_SPREAD=0
MG_PERCENT=15
MG_CUSTOM_PERCENTS="1:30,2:30,3:15"
MG_FREEPERIOD_DAYS=14
MG_DOMAIN="ourisp.com"
Тарифікація і ввімкнення/вимкнення підписок здійснюється за допомогою таких викликів [[remoteapi|RemoteAPI]], для помісячного (MG_SPREAD=0) нарахування АП:
19 1 * * * /bin/ubapi "mgfreecleanup"
20 1 1 * * /bin/ubapi "mgqueue"
21 1 1 * * /bin/ubapi "mgprocessing"
І для подобового (природно потрібно MG_SPREAD=1):
20 1 1 * * /bin/ubapi "mgqueue"
21 1 * * * /bin/ubapi "mgprocessing"
Як не складно помітити, **mgqueue** спочатку здійснює обробку заявок на відключення з черги, після чого відбувається зняття АП за всіма активними підписками за допомогою **mgprocessing**. У цей же час примусово ліквідуються тестові підписки з безкоштовним періодом. Для валідного очищення підписок із тестовим періодом починаючи з релізу 1.1.3 можна використовувати виклик **mgfreecleanup** у комплексі з опцією **MG_FREEPERIOD_DAYS**, що встановлює жорстку кількість днів, після якої підписку буде видалено. По-хорошому, цей виклик має здійснюватися до mgqueue і mgprocessing.
====== Конфігурація кабінету користувача ======
З точки зору [[userstats|кабінету]] - все ще простіше.
MG_ENABLED=1
MG_PROTECTION=1
MG_TARIFFSALLOWED=""
MG_GUIDE_URL=""
API_URL="http://billing.isp/"
API_KEY="UBxxxxxxxxxxxxxxxx"
Власне зрозуміло, що URL до встановленого Ubilling і його серійник мають бути валідними, для адекватного спілкування кабінету з білінгом, за допомогою RemoteAPI. Опція MG_PROTECTION у ввімкненому вигляді - актуальна в разі помісячної тарифікації послуг.
====== Заради чого все це? ======
Для того, щоб за допомогою відповідного модуля
{{:megogo0.png?|}}
Ми могли додати актуальні тарифи, і задати послуги, що надаються нами користувачам
{{:megogo1.png?500|}}
Користувачі зможуть спробувати оформити підписку у себе в кабінеті. Природно статися це все може, тільки якщо користувач не є замороженим, відключеним, і у нього на рахунку достатньо коштів.
{{:megogo2.png?500|}}
Який вигляд мають оформлені підписки для користувача? Ось якось так це і має виглядати.
{{:megogo3.png?500|}}
Під час передплати залежно від значення MG_SPREAD (0 - нормальна щомісячна АП, 1 - розмазана АП) з рахунку користувача буде знято вартість або місячної, або добової АП. Заміна основної підписки проводиться шляхом відписки, і подальшої підписки на нову, тільки з настанням наступного місяця. Цим займається обробник черги **mgqueue**. Зроблено так, заради простоти взаєморозрахунків і швидкого виявлення конфліктів, користувача, провайдера, і сервісу Megogo. \\
Починаючи з релізу 0.7.5 перед нарахуванням АП перевіряється, чи не викличе це заборгованості на рахунку користувача. Якщо це має шанс статися - підписка буде насильно деактивована і нарахування АП проводитися не буде. Звісно, кожна підписка розглядається в цьому контексті окремо. Тобто якщо у користувача тариф інтернету за 100 грошей, а також додатково активовані передплати за 37 і 59 грошей (ага, разом все коштує 196 грошей на місяць), а на рахунку є 137 грошей, спочатку буде нараховано АП за інтернет (-100), потім по черзі розглянуті передплати, продовжено передплату, що коштує 37 грошей, і насильно деактивовано передплату за 59, оскільки її продовження точно викличе заборгованість на рахунку користувача (-59 грошей). І так - все це має сенс тільки для помісячної АП.\\
**Починаючи з релізу Ubilling 1.1.8, відходить у небуття стара авторизація**, з прив'язкою партнерського акаунта користувача до наявного облікового запису на [[https://megogo.net|megogo.net]] за допомогою чарівної кнопки "Перейти на Megogo". На заміну цьому приходить нова модель авторизації за допомогою автоматичної реєстрації користувачів на megogo.net за допомогою виклику changeCredentials і нової магічної кнопки "Продовжити". Обов'язковою для цього є нормально заповнена опція MG_DOMAIN. Наприклад якось так:
MG_DOMAIN="voslavusatane.net.ua"
Під час активації підписки користувачем, для нього автоматично реєструватиметься акаунт на сайті megogo.net такого вигляду **логин_пользователя@voslavusatane.net.ua** і використовуватиметься за замовчуванням пароль від основного профілю користувача. Це ж усе, в разі успіху, буде показуватися в кабінеті користувача якось так:
{{:mgcredentials0.jpg?600|}}
{{:mgcredentials2.jpg?600|}}
Так само всі дані авторизації показуються і в інтерфейсі адміністратора. На випадок, якщо "користувач забув пароль, який він бачить у себе в кабінеті" або "він його випадково змінив на сайті", ви завжди можете взяти і в ручному режимі зі свого боку натиснути йому повторно "реєстрацію користувача" і оновити дані авторизації цього користувача "на сайті", примусово зі свого боку.
{{:mgcredentials1.jpg|}}
====== Про безкоштовний період ======
Якщо підписка має безкоштовний період (aka try&buy) і користувач раніше не був підписаний, ні на один інший, або на цей самий тариф із безкоштовним періодом, під час його активації АП не стягується (точніше стягується, але в сумі "0" грошей). І дана підписка в списку і кабінеті користувача буде фігурувати саме як з "безкоштовним періодом".
{{:megogo4.png?500|}}
Її самоліквідація відбудеться залежно від значення MG_SPREAD - або з настанням нового місяця в разі повної тарифікації, або через 30 календарних днів з моменту активації, в разі розмазаної АП. Після чого користувач може відновити підписку на цей, або інший сервіс, але безкоштовного періоду для нього вже не настане, і тарифікуватися він буде на загальних обставинах.
\\
Починаючи з релізу Ubilling 1.1.3 для очищення "прострочених" підписок із безоплатним періодом рекомендується використовувати виклик **mgfreecleanup** у комплексі з опцією MG_FREEPERIOD_DAYS, що встановлює жорстку кількість днів, після якої підписку буде видалено.
====== Звітність ======
Звіт слугує для контролю взаєморозрахунків, і вміє обробляти як помісячну, так і подобову тарифікацію послуг і показувати кількість підписок за місяць або кількість тарифікованих днів щодо тарифних планів. Ну і звісно ж рахує кінцевий профіт провайдера ;)
**Місячний звіт:**
{{:megogo5.png?500|}}
**Добовий звіт**
{{:megogo6.png?500|}}
====== Алярма ======
Якщо будете змінювати IP-адресу білінгу, все перестане працювати. З боку Мегого адреса жорстко прибита, у разі заміни треба їх повідомити.