130 lines
4.2 KiB
Markdown
130 lines
4.2 KiB
Markdown
|
|
# Что возвращает database.php и что используется
|
|||
|
|
|
|||
|
|
## SQL запрос
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
SELECT * FROM lexrpiority WHERE voucher = '...' LIMIT 1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Возвращает ВСЕ поля строки** из таблицы `lexrpiority`.
|
|||
|
|
|
|||
|
|
## Что используется в PHP скрипте
|
|||
|
|
|
|||
|
|
После получения строки из БД (`$row = mysqli_fetch_assoc($result)`), скрипт использует:
|
|||
|
|
|
|||
|
|
1. **`tariff_code_basic`** - для проверки валидности тарифа
|
|||
|
|
2. **`tariff_code_other`** - для проверки валидности тарифа
|
|||
|
|
|
|||
|
|
## Что возвращается в JSON ответе
|
|||
|
|
|
|||
|
|
### При успехе (полис найден и валиден):
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": "true",
|
|||
|
|
"message": "Полис найден",
|
|||
|
|
"result": {
|
|||
|
|
// ВСЯ строка из БД (все поля таблицы lexrpiority)
|
|||
|
|
"id": "35927",
|
|||
|
|
"row_no": "893",
|
|||
|
|
"agent_code": "E50208",
|
|||
|
|
"voucher": "E50208-306083026",
|
|||
|
|
"insured_name": "SHAROV IURII",
|
|||
|
|
"insured_birth": "10.05.1974",
|
|||
|
|
"insured_gender": "U",
|
|||
|
|
"status": "NV",
|
|||
|
|
"insured_counter": "1",
|
|||
|
|
"issued_on": "17.11.2025",
|
|||
|
|
"insured_from": "19.11.2025", // ⭐ ИСПОЛЬЗУЕТСЯ на фронтенде
|
|||
|
|
"insured_to": "24.11.2025", // ⭐ ИСПОЛЬЗУЕТСЯ на фронтенде
|
|||
|
|
"insured_days": "6",
|
|||
|
|
"destination": "GEO",
|
|||
|
|
"productvariant_code": "10223",
|
|||
|
|
"tariff_code_basic": "STB2003",
|
|||
|
|
"tariff_code_sport": "",
|
|||
|
|
"tariff_code_cancel": "",
|
|||
|
|
"tariff_code_other": "SPV2002", // ⭐ ИСПОЛЬЗУЕТСЯ для проверки
|
|||
|
|
"premium_cur_basic": "12,48",
|
|||
|
|
"premium_cur_sport": "",
|
|||
|
|
"premium_cur_cancel": "",
|
|||
|
|
"premium_cur_other": "13",
|
|||
|
|
"premium_cur": "25,48",
|
|||
|
|
"premium_loc": "2067,13",
|
|||
|
|
// ... и другие поля
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### При ошибке (полис не найден или не валиден):
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": "false",
|
|||
|
|
"message": "Полис не найден" или "Ваш полис не включает покрытие задержки рейса",
|
|||
|
|
"result": ""
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Что используется на фронтенде (JavaScript)
|
|||
|
|
|
|||
|
|
В `ticket_dev/js/common.js` строки 1227-1228:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// Автозаполнение дат из результата проверки полиса
|
|||
|
|
$('input[name=insured_from]').val(res.result.insured_from.replace(/\./g, '-'));
|
|||
|
|
$('input[name=insured_to]').val(res.result.insured_to.replace(/\./g, '-'));
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Используются только 2 поля:**
|
|||
|
|
- `result.insured_from` - дата начала действия полиса
|
|||
|
|
- `result.insured_to` - дата окончания действия полиса
|
|||
|
|
|
|||
|
|
## Вывод для вебхука n8n
|
|||
|
|
|
|||
|
|
Для вебхука нужно возвращать:
|
|||
|
|
|
|||
|
|
### Минимально необходимое:
|
|||
|
|
- `found: 1/0` - для IF Node в n8n
|
|||
|
|
- `success: true/false` - для совместимости с PHP
|
|||
|
|
- `message` - текстовое сообщение
|
|||
|
|
|
|||
|
|
### Желательно (для автозаполнения на фронтенде):
|
|||
|
|
- `result.insured_from` - дата начала полиса
|
|||
|
|
- `result.insured_to` - дата окончания полиса
|
|||
|
|
|
|||
|
|
### Опционально (для дополнительной информации):
|
|||
|
|
- Остальные поля из таблицы `lexrpiority` (если нужны для логирования/аналитики)
|
|||
|
|
|
|||
|
|
## Рекомендуемый формат ответа вебхука
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"found": 1,
|
|||
|
|
"message": "Полис найден",
|
|||
|
|
"result": {
|
|||
|
|
"insured_from": "19.11.2025",
|
|||
|
|
"insured_to": "24.11.2025",
|
|||
|
|
"voucher": "E50208-306083026",
|
|||
|
|
"insured_name": "SHAROV IURII",
|
|||
|
|
"tariff_code_basic": "STB2003",
|
|||
|
|
"tariff_code_other": "SPV2002"
|
|||
|
|
// Можно добавить другие поля, если нужны
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Или минимальный вариант (если не нужны данные для автозаполнения):
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"found": 1,
|
|||
|
|
"message": "Полис найден",
|
|||
|
|
"result": {
|
|||
|
|
"insured_from": "19.11.2025",
|
|||
|
|
"insured_to": "24.11.2025"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|