Это симуляция оплаты сервиса Bounty. Деньги не списываются, введённые данные не сохраняются.
SimBank

SimBank

Симуляция эквайринга для Bounty. Денег не двигает, карты не проверяет, чеков не выпускает.

Зачем

Способ приёма российских карт за тайские объекты — открытый вопрос проекта (В-3). Пока на него нет ответа, писать интеграцию не с чем, а путь оплаты сервису нужен целиком: бронь подтвердили — гость платит — сервис узнал. Этот модуль закрывает ровно этот путь и будет заменён настоящим провайдером.

Как это работает

1Сервер создаёт платёж: POST /v1/payments
2Гость уходит на /pay/{id}
3Платит картой или по коду СБП
4Возвращается на return_url?payment_id=…
5Сервер спрашивает GET /v1/payments/{id}

Пятый шаг главный: состояние платежа сервис узнаёт на нашем сервере, а не из адреса возврата. Адрес человек правит руками, и «оплачено» в нём не значит ничего. Настоящие провайдеры устроены так же.

Создать платёж

POST /v1/payments
X-Simbank-Secret: <общий секрет>

{
  "order_id": "BK-000123",
  "amount_minor": 1250000,
  "currency": "THB",
  "description": "Вилла Sunset, 3 ночи",
  "return_url": "https://mybounty.org/ru/trips/<id>",
  "webhook_url": "https://api.mybounty.org/v1/payments/callback"
}

Уведомление

Когда платёж проходит, модуль отправляет POST на webhook_url с заголовком X-Simbank-Signature — это HMAC-SHA256 тела запроса на общем секрете. Уведомление нужно для случая, когда человек закрыл вкладку и в магазин не вернулся.

Чего здесь нет

Реквизиты карт не сохраняются нигде: форма проверяет длину и выбрасывает их. Возвратов, выплат и чеков модуль не умеет — они появятся вместе с настоящим эквайрингом.