# Платежи

Версия источника: 4880e8b4372c96001c2e052be28b68a95d31252b
Синхронизировано: 2026-11-09T11:15:07.649Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/4880e8b4372c96001c2e052be28b68a95d31252b

## Оглавление

- [Подтверждение оплаты](#payments-payment-truth)
- [Платёжные события](#payments-payment-events)
- [Платёжные данные](#payments-card-data)
- [Платёжная сверка](#payments-reconciliation)
- [Платёжные окружения](#payments-test-live)

<a id="payments-payment-truth"></a>

# Подтверждение оплаты

## Коротко

Возврат пользователя на страницу успеха не доказывает получение денег.

## Плохо

```text
?success=true → заказ оплачен.
```

## Хорошо

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

## Почему

Параметр адреса можно изменить, а пользователь может закрыть страницу до возврата.

## Когда применять

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

## Как проверить

- Проверьте ложный success и оплату без возврата пользователя.

## Человек

Определяет момент выдачи услуги и основания признания оплаты.

## Агент

Реализует серверную обработку событий и проверяет дубликат, ошибку и сверку в тестовом окружении.

Контроль результата:

- Проверьте ложный success и оплату без возврата пользователя.

## Источники

- [Fulfill orders](https://docs.stripe.com/checkout/fulfillment)

Уровень: Обязательно. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/payments/stripe/rules/payment-truth.md)

---

<a id="payments-payment-events"></a>

# Платёжные события

## Коротко

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

## Плохо

```text
Каждый payment_intent.succeeded повторно выдаёт покупку.
```

## Хорошо

```text
event_id сохранён.
Переход состояния проверен. Повтор безопасен.
```

## Почему

Доставка события и бизнес-операция не образуют общую сетевую транзакцию.

## Когда применять

При неоднозначности уточняйте актуальное состояние у провайдера. Сохранение event_id и изменение локального состояния связываются транзакционно. Разные event_id тоже могут описывать один объект и тип события: выдачу покупки дополнительно защищает уникальность бизнес-операции по payment_id.

## Как проверить

- Отправьте одно событие дважды и поменяйте порядок событий.

## Человек

Определяет допустимые переходы статусов, отмены и возвраты.

## Агент

Реализует серверную обработку событий и проверяет дубликат, ошибку и сверку в тестовом окружении.

Контроль результата:

- Отправьте одно событие дважды и поменяйте порядок событий.

## Источники

- [Receive Stripe events in your webhook endpoint](https://docs.stripe.com/webhooks)

Уровень: Обязательно. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/payments/stripe/rules/payment-events.md)

---

<a id="payments-card-data"></a>

# Платёжные данные

## Коротко

Используйте платёжную форму или компоненты провайдера и храните его идентификаторы.

## Плохо

```text
Номер карты и CVC приходят в собственный API и логи.
```

## Хорошо

```text
Платёжный компонент провайдера.
Сервер хранит payment_id и состояние.
```

## Почему

Обработка карточных данных существенно увеличивает требования к защите.

## Когда применять

Использование провайдера уменьшает объём чувствительных данных, но не отменяет собственные обязательства проекта.

## Как проверить

- В БД, логах и аналитике нет PAN/CVC?

## Человек

Выбирает платёжного провайдера и допустимый способ ввода реквизитов.

## Агент

Реализует серверную обработку событий и проверяет дубликат, ошибку и сверку в тестовом окружении.

Контроль результата:

- В БД, логах и аналитике нет PAN/CVC?

## Источники

- [Integration security guide](https://docs.stripe.com/security/guide)

Уровень: Обязательно. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/payments/stripe/rules/card-data.md)

---

<a id="payments-reconciliation"></a>

# Платёжная сверка

## Коротко

Периодически находите несовпадения между локальной системой и провайдером.

## Плохо

```text
Вебхук потерян; оплаченный заказ навсегда остался pending.
```

## Хорошо

```text
Сверка неопределённых платежей.
Расхождение попадает на разбор с историей.
```

## Почему

Одного канала уведомлений недостаточно для контроля состояния денег.

## Когда применять

Частота зависит от объёма и допустимой задержки. Возвраты и споры включаются в ту же модель.

## Как проверить

- Есть ли проверка потерянного события и частичного возврата?

## Человек

Определяет период сверки и ответственного за расхождения.

## Агент

Реализует серверную обработку событий и проверяет дубликат, ошибку и сверку в тестовом окружении.

Контроль результата:

- Есть ли проверка потерянного события и частичного возврата?

## Источники

- [Payment status updates](https://docs.stripe.com/payments/payment-intents/verifying-status)
- [Refund and cancel payments](https://docs.stripe.com/refunds)

Уровень: Рекомендуется. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/payments/stripe/rules/reconciliation.md)

---

<a id="payments-test-live"></a>

# Платёжные окружения

## Коротко

Используйте разные ключи, события и явную проверку окружения.

## Плохо

```text
Тесты берут первый доступный ключ и создают живую оплату.
```

## Хорошо

```text
Тестовый режим проверяется до запроса.
Рабочие ключи недоступны тестовой среде.
```

## Почему

Автотест не должен случайно списывать настоящие деньги.

## Когда применять

Версия API провайдера фиксируется явно; обновляется после проверки схем событий и SDK.

## Как проверить

- Тестовая сборка отказывается запускаться с рабочей конфигурацией?

## Человек

Согласует включение реальных платежей и тестовые сценарии.

## Агент

Реализует серверную обработку событий и проверяет дубликат, ошибку и сверку в тестовом окружении.

Контроль результата:

- Тестовая сборка отказывается запускаться с рабочей конфигурацией?

## Источники

- [Test card numbers](https://docs.stripe.com/testing)
- [Versioning](https://docs.stripe.com/api/versioning)

Уровень: Обязательно. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/payments/stripe/rules/test-live.md)
