Улучшил скилл оплаты

This commit is contained in:
programx-dev 2026-04-21 23:11:38 +03:00
parent d0133b8806
commit d54eb1846b
3 changed files with 116 additions and 50 deletions

View file

@ -1,12 +1,38 @@
# Протокол предотвращения ошибочных транзакций
# Протокол предотвращения ошибочных транзакций и архивации
## 1. Защита от подмены ссылки (Anti-Phishing)
- Проверяй домен платежной страницы. Допустимые домены: `*.ozon.ru`, `*.wildberries.ru`, `*.yandex.ru`, `*.nspk.ru`, `*.alfabank.ru`, `*.sberbank.ru`, `*.tinkoff.ru`, `*.vtb.ru`.
- Если ссылка ведет на подозрительный домен (например, `ozon-pay.com`), немедленно закрой браузер.
Данный протокол является высшим приоритетом при работе со страницей оплаты. Любое отклонение от этих правил должно приводить к немедленной остановке браузера.
## 2. Защита от двойного списания
- После отправки ссылки пользователю, не нажимай кнопку "Я оплатил" до получения явной команды в чате.
- Если страница автоматически обновилась и просит оплатить снова — не делай этого без проверки статуса заказа в личном кабинете.
## 1. Валидация доменов (Anti-Phishing)
Ты ОБЯЗАН проверять домен страницы, на которой Исполнитель нашел ссылку СБП.
- **Доверенные зоны:** `*.ozon.ru`, `*.wildberries.ru`, `*.yandex.ru`, `*.megamarket.ru`, `*.nspk.ru`, `*.sbp.ru`.
- **Банковские шлюзы:** `*.sberbank.ru`, `*.alfabank.ru`, `*.tinkoff.ru`, `*.vtb.ru`, `*.yoomoney.ru`, `*.beeline.ru`.
- **Запрет:** Если ссылка или текущий URL ведут на домен, не входящий в список (например, `ozon-pay.ru`, `wb-payment.com`), немедленно прекрати работу и сообщи о попытке фишинга.
## 3. Контроль состава заказа
- Убедись, что на странице оплаты не появились "дополнительные товары" (гарантии, подписки), которые могли быть добавлены в момент перехода к чекауту. При обнаружении — вернись в корзину и удали их (используя скилл shopper).
## 2. Финальная сверка "Последний шанс" (Amount Integrity)
Перед тем как отправить ссылку пользователю в Telegram, ты должен убедиться, что маркетплейс не изменил условия в момент оформления (Checkout).
1. **Сверка суммы:** Считай сумму прямо с экрана оплаты (шлюза). Сравни её с `total_expected` из `/app/workspace/cart_state.json`.
2. **Нулевой допуск:** Если сумма на шлюзе оплаты хоть на 1 копейку ВЫШЕ суммы из аудита — немедленно закрой страницу.
*Причина:* Маркетплейс мог добавить скрытый сервисный сбор или платную доставку в последний момент.
## 3. "Красная кнопка" (Hard Stops)
Ты — Менеджер СБП. Ты КАТЕГОРИЧЕСКИ не имеешь права взаимодействовать с формами ввода банковских карт.
- **Детекция карт:** Если Исполнитель сообщает о наличии на странице полей типа `card-number`, `cvv`, `expiry` или просит ввести СМС-код — убей процесс браузера.
- **Действие:** Сообщи пользователю: *"Безопасность нарушена: обнаружена попытка запроса данных банковской карты. Транзакция заблокирована."*
## 4. Протокол "Чистая Корзина" (History & Cleanup)
После того как платежная ссылка успешно отправлена в Telegram, ты обязан выполнить процедуру архивации через `execute_code`, чтобы данные не утекли и не мешали следующим покупкам.
**Сценарий для Python:**
1. **Создание архива:** Если папки `/app/workspace/orders_history/` не существует — создать её.
2. **Перенос:** Скопировать текущий `cart_state.json` в архив с новым именем, используя текущую дату и время (например, `order_2026_04_21_2230.json`).
3. **Обнуление:** Перезаписать оригинальный файл `cart_state.json`, установив:
- `status`: "EMPTY"
- `items`: []
- `total_expected`: 0
4. **Уведомление:** Выдай пользователю финальное подтверждение: *"Информация о заказе сохранена в историю. Ваша текущая корзина очищена."*
## 5. Защита от повторных списаний
После выдачи ссылки ты не должен предпринимать никаких действий на странице оплаты.
- Не нажимай кнопку "Я оплатил".
- Не обновляй страницу.
- Просто закрой сессию браузера через 2 минуты после отправки ссылки или сразу после команды пользователя.