Давай напишем собственную платёжную систему, которая будет уметь отображать форму оплаты банковской картой и сохранять информацию о выполненных платежах.
- Пусть это будет сервис с JSON API.
- У него должен быть метод
/register
, принимающий сумму и назначение платежа и возвращающий URL страницы с идентификатором платёжной сессии, например,http://somehost/payments/card/form?sessionId=4e273d86-864c-429d-879a-34579708dd69
. - По URL должна открываться форма оплаты с суммой и назначением платежа.
- При отправке формы номер карты должен проверяться по алгоритму Луна. Валидные номера должны имитировать успешную оплату, невалидные — возвращать ошибку.
Мы ждём от тебя ссылку на github с реализацией на PHP (можно использовать любой фреймворк).
- Подготовить OpenAPI-спецификацию.
- Покрыть реализацию тестами.
- Ограничить время жизни платёжной сессии 30 минутами.
- Опубликовать решение как Docker-образ.
- Добавить API-метод, который возвращает список всех платежей за переданный период.
- После успешной оплаты асинхронно отправлять HTTP-уведомление на URL магазина. URL для таких уведомений передаваётся магазином в запросе
/register
.