280 lines
8.2 KiB
Markdown
280 lines
8.2 KiB
Markdown
# Конфигурация проекта
|
||
|
||
## Переменные окружения и настройки
|
||
|
||
### База данных
|
||
|
||
**Файл:** `ticket/database.php`
|
||
|
||
```php
|
||
$host = "localhost";
|
||
$username = "ci20465_erv";
|
||
$password = "c7vOXbmG";
|
||
$database = "ci20465_erv";
|
||
$table = "lexrpiority";
|
||
```
|
||
|
||
### CRM API
|
||
|
||
**Endpoint:**
|
||
```
|
||
https://crm.clientright.ru/webservice.php
|
||
```
|
||
|
||
**Учетные данные:**
|
||
```php
|
||
$username = "api";
|
||
$userAccessKey = "4r9ANex8PT2IuRV";
|
||
```
|
||
|
||
**WebForms Capture:**
|
||
```
|
||
https://crm.clientright.ru/modules/Webforms/capture.php
|
||
```
|
||
|
||
**Параметры формы:**
|
||
```php
|
||
$formToken = "sid:ec649134ad232e44c3ad71bbd321cee986f05545,1688385374";
|
||
$publicId = "3ddc71c2d79ef101c09b0d4e9c6bd08b";
|
||
$formName = "websiteticket";
|
||
```
|
||
|
||
### Внешние сервисы
|
||
|
||
#### DaData API
|
||
```php
|
||
$dadataToken = "f5d6928d7490cd44124ccae11a08c7fa5625d48c";
|
||
$dadataUrl = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party";
|
||
```
|
||
|
||
#### IP Geolocation
|
||
```php
|
||
$ipApiUrl = "http://ip-api.com/json/{IP}?lang=ru";
|
||
```
|
||
|
||
#### File Upload
|
||
```php
|
||
$fileUploadUrl = "https://form.clientright.ru/fileupload_v2.php";
|
||
```
|
||
|
||
#### Form Processing
|
||
```php
|
||
$formProcessingUrl = "https://form.clientright.ru/server_new.php";
|
||
```
|
||
|
||
### Контрагент по умолчанию (ЕРВ)
|
||
|
||
**Файл:** `ticket/index.php` (строки 65-72)
|
||
|
||
```php
|
||
$contractor = array(
|
||
'inn' => '7714312079',
|
||
'ogrn' => '1037714037426',
|
||
'accountname' => 'Филиал ООО РСО ЕВРОИНС Туристическое',
|
||
'address' => '119049 Москва, 4-й Добрынинский пер., д.8, помещ. С 14-I, ком. 21-26',
|
||
'email' => 'info@erv.ru',
|
||
'phone' => '84956265800',
|
||
'website' => 'https://www.erv.ru/'
|
||
);
|
||
```
|
||
|
||
### Валидные тарифы полисов
|
||
|
||
**Базовые тарифы:**
|
||
```php
|
||
$valid_tariffs_basic = [
|
||
'STB0048', 'STB1099', 'STB1100', 'STB2099',
|
||
'AVS21500', 'AVS22500'
|
||
];
|
||
```
|
||
|
||
**Дополнительные тарифы:**
|
||
```php
|
||
$valid_tariffs_other = [
|
||
'SPV0001', 'SPV0002', 'SPV0003', 'SPV0004', 'SPV0005',
|
||
'STV0090',
|
||
'SPV1001', 'SPV1002', 'SPV1003', 'SPV1004', 'SPV1005',
|
||
'SPV2001', 'SPV2002', 'SPV2004', 'SPV2005',
|
||
'OPV1001', 'OPV1002', 'OPV1003', 'OPV1004', 'OPV1005',
|
||
'OPV2001', 'OPV2002', 'OPV2004', 'OPV2005'
|
||
];
|
||
```
|
||
|
||
### Ограничения файлов
|
||
|
||
```php
|
||
$maxFileSize = 5 * 1024 * 1024; // 5 МБ
|
||
$maxFilesPerField = 10;
|
||
$allowedFormats = ['pdf', 'jpg', 'png', 'gif', 'jpeg', 'heic', 'HEIC'];
|
||
```
|
||
|
||
### Настройки формы
|
||
|
||
**ID формы:**
|
||
```php
|
||
$formId = "00001";
|
||
```
|
||
|
||
**Направление обращения:**
|
||
```php
|
||
$direction = "ЕРВ Средства размещения";
|
||
```
|
||
|
||
### Маппинг полей формы
|
||
|
||
#### Поля клиента (data-ws_type="client")
|
||
| Поле формы | CRM поле | Описание |
|
||
|------------|----------|----------|
|
||
| `lastname` | `lastname` | Фамилия |
|
||
| `firstname` | `firstname` | Имя |
|
||
| `patronymic` | `secondname` | Отчество |
|
||
| `phonenumber` | `mobile` | Телефон |
|
||
| `email` | `email` | Email |
|
||
| `birthday` | `birthday` | Дата рождения |
|
||
| `reg_adres` | `mailingstreet` | Адрес регистрации |
|
||
| `inn` | `inn` | ИНН |
|
||
| `code` | `code` | SMS-код |
|
||
|
||
#### Поля проекта (data-ws_type="project")
|
||
| Поле формы | CRM поле | Описание |
|
||
|------------|----------|----------|
|
||
| `insured_from` | `cf_1887` | Дата начала страхования |
|
||
| `insured_to` | `cf_1889` | Дата окончания страхования |
|
||
| `claim` | `cf_1899` | Код документа |
|
||
| `doc` | `cf_1804` | Серия и номер документа |
|
||
| `countryevent` | `cf_1909` | Страна события |
|
||
| `agree` | `cf_2502` | Согласие на обработку данных |
|
||
|
||
#### Поля контрагента (data-ws_type="contractor")
|
||
| Поле формы | CRM поле | Описание |
|
||
|------------|----------|----------|
|
||
| `place_inn` | `inn` | ИНН |
|
||
| - | `ogrn` | ОГРН |
|
||
| `place` | `accountname` | Наименование |
|
||
| `place_adres` | `address` | Адрес |
|
||
| `place_email` | `email` | Email |
|
||
| `place_phone` | `phone` | Телефон |
|
||
| `place_website` | `website` | Сайт |
|
||
|
||
#### Другие поля (data-ws_type="other")
|
||
| Поле формы | CRM поле | Описание |
|
||
|------------|----------|----------|
|
||
| - | `cf_2446` | Флаг наличия в базе |
|
||
| `police_number` | `cf_1885` | Номер полиса |
|
||
| `event_type` | `cf_1726` | Тип события |
|
||
| `insurence_date` | `cf_2566` | Дата страхового случая |
|
||
| `transport_number` | `cf_2568` | Номер рейса/поезда |
|
||
| `description` | `description` | Описание ситуации |
|
||
| - | `cf_1945` | ФИО получателя |
|
||
| - | `cf_1265` | Банк |
|
||
| - | `cf_1267` | БИК |
|
||
| - | `cf_1269` | Расчетный счет |
|
||
| - | `cf_1271` | Корр. счет |
|
||
| - | `cf_1273` | Иные реквизиты |
|
||
|
||
### Типы страховых случаев
|
||
|
||
```php
|
||
$eventTypes = [
|
||
'delay_flight' => 'Задержка авиарейса (более 3 часов)',
|
||
'cancel_flight' => 'Отмена авиарейса',
|
||
'miss_connection' => 'Пропуск (задержка прибытия) стыковочного рейса',
|
||
'emergency_landing' => 'Посадка воздушного судна на запасной аэродром',
|
||
'delay_train' => 'Задержка отправки поезда',
|
||
'cancel_train' => 'Отмена поезда',
|
||
'delay_ferry' => 'Задержка/отмена отправки парома/круизного судна'
|
||
];
|
||
```
|
||
|
||
### Коды документов
|
||
|
||
```php
|
||
$documentCodes = [
|
||
'21' => 'Паспорт гражданина Российской Федерации',
|
||
'07' => 'Военный билет',
|
||
'24' => 'Удостоверение личности военнослужащего Российской Федерации',
|
||
'91' => 'Иные документы'
|
||
];
|
||
```
|
||
|
||
### Настройки логирования
|
||
|
||
**Путь к логам:**
|
||
```php
|
||
$logFile = "logs/logfile.log";
|
||
```
|
||
|
||
**Уровни логирования:**
|
||
- Информационные сообщения
|
||
- Ошибки
|
||
- Отладочная информация
|
||
|
||
### Настройки сессии
|
||
|
||
```php
|
||
session_start();
|
||
$subDir = session_id(); // Используется для изоляции файлов пользователей
|
||
```
|
||
|
||
### URL для редиректа после успешной отправки
|
||
|
||
```php
|
||
$successRedirectUrl = "https://lexpriority.ru/ok";
|
||
```
|
||
|
||
### Политика обработки персональных данных
|
||
|
||
```php
|
||
$privacyPolicyUrl = "https://lexpriority.ru/politics";
|
||
```
|
||
|
||
## Рекомендации по безопасности
|
||
|
||
1. **Храните секретные ключи в переменных окружения**
|
||
2. **Не коммитьте пароли и токены в репозиторий**
|
||
3. **Используйте HTTPS для всех внешних запросов**
|
||
4. **Валидируйте все входные данные**
|
||
5. **Используйте prepared statements для SQL**
|
||
6. **Ограничьте права доступа к файлам**
|
||
7. **Регулярно обновляйте зависимости**
|
||
|
||
## Переменные для разработки
|
||
|
||
### Тестовый режим
|
||
```php
|
||
// Добавьте ?demodata=1 к URL для автоматического заполнения формы
|
||
$demoMode = isset($_GET["demodata"]) ? $_GET["demodata"] : false;
|
||
```
|
||
|
||
### Тестовые данные для API
|
||
```php
|
||
$testInn = "643922466250";
|
||
$testSmsCode = "795372";
|
||
```
|
||
|
||
## Настройки сервера
|
||
|
||
### PHP требования
|
||
- PHP 7.4 или выше
|
||
- Расширения:
|
||
- curl
|
||
- mysqli
|
||
- gd (для работы с изображениями)
|
||
- mbstring
|
||
|
||
### Права доступа
|
||
```bash
|
||
# Для директории загрузки файлов
|
||
chmod 755 uploads/
|
||
chmod 755 logs/
|
||
```
|
||
|
||
### Настройки PHP.ini
|
||
```ini
|
||
upload_max_filesize = 10M
|
||
post_max_size = 10M
|
||
max_execution_time = 300
|
||
memory_limit = 256M
|
||
```
|
||
|