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
|
|||
|
|
```
|
|||
|
|
|