# Интеграция с BILLmanager

## Установка модуля

1\) Подключитесь к вашему серверу billmanager по ssh

2. Введите команду установки модуля:

```
rpm -i https://4vps.su/assets/api/pmfourserver-isplicense-v1.c5.358.0-1.el7.x86_64.rpm
```

&#x20;             (для версии COREmanager 5.358.0)

```
rpm -i 
https://4vps.su/assets/api/pmfourserver-isplicense-v1.c5.359.0-1.el7.x86_64.rpm
```

&#x20;             (для версии COREmanager 5.359.0)

```
rpm -i 
https://4vps.su/assets/api/pmfourserver-isplicense-v1.c5.360.0-1.el7.x86_64.rpm
```

&#x20;             (для версии COREmanager 5.360.0)

Репозитория для Версии COREmanager 5.358.0, 5.359.0, 5.360.0 (если у вас другая версия, напишите в поддержку для компиляции модуля под вашу версию billmgr)(Версию можно посмотреть в Админ-панели billmanager, в самом низу, кнопка “О Программе”)

## Удаление модуля

```
rpm –e pmfourserver-isplicense-5.358.0-1.el7.x86_64
```

## Добавление модуля в billmanager и настройка

&#x20;

**Продукты  ->  Типы продуктов -> Создать**

Обязательно:

1\.      Внутреннее имя – fourserver;

2\.      Доступные периоды оплаты – выбрать только месяц;

3\.      Перезагрузить Billmgr.

&#x20;

**Интеграция -> Обработчики услуг -> Создать**

Шаг 1. Выбрать в списке ваше название модуля fourserver.&#x20;

Шаг 2. Выбрать в списке 4server.&#x20;

Шаг 3. Заполнить url (“<https://4vps.su/”>) и Ключ API.

Шаг 4. Настроить параметры обработчика услуг.&#x20;

На шаге 4 будет введено название «Вашего обработчика услуг»

&#x20;

## Создание “Параметры”

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Параметры -> Создать (fourserver\_serverip)**

Обязательно:

1\.      Наименование - IPv4;

2\.      Внутреннее имя - fourserver\_serverip;

3\.      Поставить галочку на “Показывать в списке”;

4\.      Выбрать в Доступ для изменения - Супер пользователь;

5\.      Нажать на ОК.

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Параметры -> Создать (fourserver\_domainname)**

Обязательно:

1\.      Наименование - Доменное имя сервера;

2\.      Внутреннее имя - fourserver\_domainname;

3\.      Поставить галочку на “Показывать при заказе”;

4\.      Поставить галочку на “Показывать при открытии”;

5\.      Выбрать в Доступ для изменения - Супер пользователь;

6\.      Выбрать в Функция проверки  - Имя домена;

7\.      Нажать на ОК.

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Параметры -> Создать (fourserver\_servername)**

Обязательно:

1\.      Наименование - Имя сервера;

2\.      Внутреннее имя - fourserver\_servername;

3\.      Поставить галочку на “Показывать при заказе”;

4\.      Поставить галочку на “Показывать при открытии”;

5\.      Поставить галочку на “Показывать в списке”;

6\.      Выбрать в Доступ для изменения - Супер пользователь;

7\.      Поставить галочку на “Обязательный параметр”;

8\.      Выбрать в Функция проверки  - Буквенно-цифровой;

9\.      Нажать на ОК.

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Параметры -> Создать (server\_password)**

Обязательно:

1\.      Наименование - Пароль;

2\.      Внутреннее имя – server\_password;

3\.      Поставить галочку на “Показывать в списке”;

4\.      Выбрать в Доступ для изменения - Супер пользователь;

5\.      Подсказка ru/en: Логин для Linux: root / Логин для Windows Server 2012/2016/2019/2022: Administrator / Логин для Windows 10/11: Admin

6\.      Описание ru/en: Логин для Linux: root / Логин для Windows Server 2012/2016/2019/2022: Administrator / Логин для Windows 10/11: Admin

7\.      Нажать на ОК.

&#x20;

Перезагрузить «.

&#x20;

## Создание “Содержание”

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Содержание -> Создать (backup\_period)**

Обязательно:

1\.      Наименование - Выбор периода резервного копирования;

2\.      Внутреннее имя - backup\_period;

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Содержание -> Создать (OC\_selection)**

Обязательно:

1\.      Наименование - Выбор предустановленной OC;

2\.      Внутреннее имя - OC\_selection;

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Содержание -> Создать (tarif\_disk)**

Обязательно:

1\.      Наименование - Количество disk 1 = 10GB;

2\.      Внутреннее имя - tarif\_disk;

{% hint style="info" %}
\---Объяснение “Количество disk 1 = 10GB” 1 = 10GB, 1 это шаг, каждый следующий шаг = 10GB диска, т.е. 2 = 20 GB и так далее, это нужно для покупки дополнительных ресурсов после аренды VPS. Можете это назвать по своему.
{% endhint %}

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Содержание -> Создать (tarif\_ram)**

Обязательно:

1\.      Наименование - Количество RAM;

2\.      Внутреннее имя - tarif\_ram;

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Содержание -> Создать (coreses)**

Обязательно:

1\.      Наименование - Количество ядер;

2\.      Внутреннее имя - coreses;

&#x20;

**Продукты -> Типы продуктов -> Выбрать fourserver -> Содержание -> Создать (ip\_adresses)**

Обязательно:

1\.      Наименование - Количество ip-адресов;

2\.      Внутреннее имя - ip\_adresses;

Перезагрузить .

## Создание шаблона

**Шаблоны сообщений -> Email сообщения -> Создать**

Обязательно:

1\.      Наименование - fourserver\_template

2\.      Тип уведомления – Открытие услуги. “Ваше название модуля”

3\.      Заголовок сообщения – Покупка сервера 4server

4\.      Поставить галочку на “Копировать в уведомлениях”.

5\.      В “Шаблон сообщения (ru)” добавить следующий текст:

```
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<style type="text/css">
			b { color: #333; }
			.sP {font-family:Arial,Helvetica,sans-serif; font-size:12px;}
			.sA {color:blue;}
			.sH2 {font-family:Arial,Helvetica,sans-serif; font-size:13px; font-weight:bold;}
			.sP {font-family:Arial,Helvetica,sans-serif; font-size:12px;}
			.sLI {font-family:Arial,Helvetica,sans-serif; font-size:12px;}
			.sUL {margin-top: 0px; padding-left: 30px;}
			#subject {font-family:Arial,Helvetica,sans-serif; font-size:15px; margin-top:6px; margin-left:10px; margin-right:10px; margin-bottom:5px;}
			#content {margin: 8px 9px;}
		</style>
	</head>
	<body bgcolor="#ffffff">
		<div>
		<table width="90%" align="center" cellpadding="0" cellspacing="0" border="0">
		<!-- Subject -->
		<tr><td bgcolor="#e5e5e5">
		<div id="subject"><b>Активация Виртуального сервера</b></div>
		<div id="summary">Здравствуйте, уведомляем, что для вас был активирован Виртуальный сервер.</div>
		</td></tr>
		<!-- Text -->
		<tr><td>
			<div id="content">
				<p class="sP">Здравствуйте, <%= user.realname %>!</p>
				<p class="sP">Настоящим письмом уведомляем, что на ваше имя был зарегистрирован Виртуальный Сервер. Предлагаем распечатать данное сообщение для удобства использования в дальнейшем.</p>
				<h2 class="sH2">Информация о cервере</h2>
				<ul class="sUL">
					<li class="sLI"><b>Тарифный план: </b> <%= pricelist.name_ru && pricelist.name_ru != '' ? pricelist.name_ru : pricelist.name %></li>
					<li class="sLI"><b>Дата открытия: </b> <%= item.opendate %></li>
					<li class="sLI"><b>Имя сервера: </b> <%= item.fourserver_servername %></li>
					<li class="sLI"><b>Доменное имя: </b> <%= (typeof item.fourserver_domainname !== 'undefined' ? item.fourserver_domainname : "") %></li></li>
					<li class="sLI"><b>IPv4: Отображается на странице с сервером </b>
					<li class="sLI"><b>Логин для Windows Server 2012/2016/2019/2022: Administrator</b></li>
					<li class="sLI"><b>Логин для Windows 10/11: Admin</b></li>
					<li class="sLI"><b>Логин для Linux: root</b></li>
					<li class="sLI"><b>Пароль: </b> <%= item.server_password %></li>
				</ul>
				<p class="sP"><br/>Желаем успехов в работе с Виртуальным Сервером!<br/>Команда "<%= project.name %>"</p>
			</div>
		</td></tr>
		</table>
		</div>
	</body>
</html>

```

### &#x20;

&#x20;

## Создание “Перечисления”

&#x20;

**Продукты -> Перечисления -> Создать (backup\_period)**

Обязательно:

1\.      Наименование - Выбор периода резервного копирования;

2\.      Внутреннее имя - backup\_period;

&#x20;

**Продукты -> Перечисления -> Создать (OC\_selection)**

Обязательно:

1\.      Наименование - Выбор предустановленной OC;

2\.      Внутреннее имя - OC\_selection;

&#x20;

**Продукты -> Перечисления -> Создать (ip\_adresses)**

Обязательно:

1\.      Наименование - Количество ip-адресов;

2\.      Внутреннее имя - ip\_adresses;

&#x20;

**Продукты -> Перечисления -> Создать (coreses)**

Обязательно:

1\.      Наименование - Количество ядер;

2\.      Внутреннее имя - coreses;

&#x20;

**Продукты -> Перечисления -> Создать (tarif\_ram)**

Обязательно:

1\.      Наименование - Количество RAM;

2\.      Внутреннее имя - tarif\_ram;

&#x20;

**Продукты -> Перечисления -> Создать (tarif\_disk)**

Обязательно:

1\.      Наименование - Количество disk 1 = 10GB;

2\.      Внутреннее имя - tarif\_disk;

\---Объяснение “Количество disk 1 = 10GB”

&#x20;1 = 10GB, 1 это шаг, каждый следующий шаг = 10GB диска, т.е. 2 = 20 GB и так далее, это нужно для покупки дополнительных ресурсов после аренды VPS. Можете это назвать по своему.

## Заполнение “Перечисления”

&#x20;

**Продукты -> Перечисления -> Выбрать OC\_selection -> Значения**

Для заполнения OC\_selection необходимо выполнить запрос в 4server через API «Получение списка образов» и получить список образов.

Пример: curl -H “Authorization: Bearer <ваш ключ АПИ>” <https://4server.su/api/getImages/13/1>

Ответ:

![](/files/ihNn2zOO7J2vRX4qfKGl)

&#x20;

Далее в billmanager нажать «Создать» и заполнить поля в соответствии с данными

Обязательно:

1\.      Первая и второе поле - CentOS 9 Stream;

2\.      Третье поле - 27;

Далее аналогично добавить остальные OC:

Ниже данные для примера, данный список может меняться

| Первое и второе поле | Третье поле |
| -------------------- | ----------- |
| VzLinux 8            | 26          |
| Debian 11            | 25          |
| Oracle Linux 8       | 24          |
| Rocky Linux 8        | 23          |
| Alma Linux 8         | 22          |
| Astra Linux CE       | 21          |
| FreeBSD 13           | 20          |
| FreeBSD 12           | 19          |
| CentOS 8 Stream      | 18          |
| Ubuntu 22.04         | 14          |
| Ubuntu 20.04         | 13          |
| Ubuntu 18.04         | 6           |
| Ubuntu 16.04         | 5           |
| Debian 9             | 4           |
| Debian 10            | 3           |
| CentOS 7             | 2           |
| NoOS                 | 1           |

&#x20;

**Продукты -> Перечисления -> Выбрать backup\_period -> Значения -> Создать**

Обязательно:

1\.      Первое поле - Нет;

2\.      Второе поле – No;

3\.      Третье поле - 0;

Далее аналогично добавить остальные периоды

| Первое поле | Второе поле | Третье поле |
| ----------- | ----------- | ----------- |
| Ежедневно   | Daily       | 1           |
| Еженедельно | Weekly      | 2           |
| Ежемесячно  | Monthly     | 3           |

&#x20;

**Продукты -> Перечисления -> Выбрать ip\_adresses -> Значения -> Создать**

Обязательно:

1\.      Первая, второе и третье поле – 1;

&#x20;

**Продукты -> Перечисления -> Выбрать coreses -> Значения -> Создать**

Обязательно:

1\.      Первая, второе и третье поле – 1;

&#x20;

**Продукты -> Перечисления -> Выбрать tarif\_ram  -> Значения -> Создать**

Обязательно:

1\.      Первая, второе и третье поле – 1;

&#x20;

**Продукты -> Перечисления -> Выбрать tarif\_disk  -> Значения -> Создать**

Обязательно:

1\.      Первая, второе и третье поле – 1;

&#x20;

## Создать “пустой” тариф

&#x20;

Необходимо создать первый тариф по умолчанию, после добавления остальных, можно будет удалить. Это необходимо, чтобы появился подраздел «Ваше название модуля»  в разделе «Товары/Услуги».

**Продукты -> Тарифные планы -> Создать**

Шаг 1. Нажать на галочку “Активировать после создания” и выбрать в списке fourserver;

Шаг 2. Выбрать в Обработчик услуг «Название вашего обработчика услуг» и заполнить параметры;

&#x20;

## Описание дополнительного функционала доступного администратору

### &#x20;

### Загрузка/синхронизация с тарифами 4server

Дополнительный функционал доступный администратору

**Товары/Услуги -> «Ваше название модуля» -> Тарифы**

При нажатии на эту кнопку будут отображены все тарифы из «Ваше название модуля» добавленные автоматически с 4server.

У тарифов есть два статуса:

·       Синхронизирован.

·       Есть расхождения.

Если у 4server изменены характеристики сервера, датацентр, id тарифа или название тарифа то появится статус «Есть расхождения».  В ином случае будет статус «Синхронизирован».

Важно!: Если изменятся цены тарифа или компонентов то статус останется «Синхронизирован». Ресселлер сам следит за ценой серверов.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Тарифы -> Добавить тариф**

При нажатии на эту кнопку появится форма для выбора провайдера, которому необходимо добавить тарифы и процент для автоматической наценки стоимости тарифа и компонентов.

Поле процент можно оставить пустым, тогда наценки не будет и цена в тарифе будет соответствовать цене 4server.

После нажатия кнопки ОК начнется добавление ВСЕХ тарифов которых нет в «Ваше название модуля» и тарифов, которые имеют статус «Есть расхождения».&#x20;

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Тарифы -> Вкл.**

Включает тариф для отображения клиенту в «Ваше название модуля».

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Тарифы -> Выкл.**

Выключает тариф для отображения клиенту в «Ваше название модуля».

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Тарифы -> Удалить тариф.**

Удаляет тариф из «Ваше название модуля» в случае, если к тарифу не привязана услуга.

&#x20;

**Настройки -> «Шаблоны сообщения» -> fourserver\_template**

Отредактируйте шаблон Инструкции после активации VPS(Инструкция это данные для входа в VPS , так же сообщение уходит на почту.)

&#x20;

&#x20;

## Описание функционала для клиента

&#x20;

**Товары/Услуги -> «Ваше название модуля»**

При выборе этой услуги будет отображены доступные серверы.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Заказать**

При нажатии на данную кнопку появляется форма c выбором тарифа и поля для ввода параметров для заказа услуги виртуального сервера. Изначально тариф имеет базовый набор параметров. Далее заказ кладётся в корзину и оплачивается. После оплаты через некоторое время будет заполнено поле IPv4 – базовый ip сервера. Это означает, что сервер окончательно настроен.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> IP-Адреса**

При нажатии на эту кнопку будут показаны ip-адреса сервера. Самый верхний – базовый ip адрес сервера.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> IP-Адреса -> Заказать IP**

При нажатии на эту кнопку откроется форма с выбором количества дополнительных ip. После нажатия кнопки «В корзину» необходимо оплатить и выбранное кол-во ip добавятся на сервер.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> IP-Адреса -> Удалить IP**

При нажатии на эту кнопку удаляется выбранный ip у сервера.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> VM**

При нажатии на эту кнопку происходит редирект на панель управление сервера.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Изменить**

При нажатии на кнопку будет отображаться форма с возможностью смены доступных параметров сервера.

После выбора требуемой конфигурации, заказ кладётся в корзину и далее оплачивается.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Удалить**

При нажатии на кнопку будет отображаться форма подтверждения операции удаления с отображением выбранного сервера.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Смена тарифа**

При нажатии на кнопку будет отображаться форма смены тарифа. После выбора тарифа для смены, заказ кладётся в корзину и далее оплачивается.

Если у тарифа характеристики отличаются от базовых или нет доступных для смены тарифов, то кнопка не активна.

&#x20;

**Товары/Услуги -> «Ваше название модуля» -> Продление**

При нажатии на кнопку будет отображаться форма с стоимостью продления. После заказ кладётся в корзину, оплачивается и происходит продление сервера на месяц.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.4vps.su/api/integraciya-s-billmanager.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
