После пуша Laravel в ваш репозиторий, сделайте задание в любой другой ветке и PR в основную.
Задача: подключить 2 платёжных шлюза (приём платежей).
- В базе должны присутствовать таблицы пользователей и платежей
- Оба шлюза присылают данные на
callback url
при изменении состояния платежа. - Оба шлюза работают только с одной валютой и передают суммы в центах.
- Создание платежа на стороне шлюза не требуется (нужно сделать только обработку изменения состояний).
- Для каждого платёжного шлюза нужно реализовать возможность установки лимита, после прохождения которого проведение платежей останавливается до следующего дня.
merchant_id=6
merchant_key=KaTf5tZYHx4v7pgZ
Field | Type | Description |
---|---|---|
merchant_id | Integer | ID of merchant |
payment_id | Integer | Merchant's payment ID |
status | String | Payment status. Could be new, pending, completed, expired or rejected |
amount | Integer | Payment amount |
amount_paid | Integer | Actually paid amount (in merchant's currency) |
timestamp | Integer | Current timestamp |
sign | String | Signature |
- Отсортировать параметры по алфавиту.
- Объединить их (
за исключением sign
), используя разделитель:
. - К концу получившейся строки добавить
merchant_key
. - Получить из неё SHA256 хеш.
{
"merchant_id": 6,
"payment_id": 13,
"status": "completed",
"amount": 500,
"amount_paid": 500,
"timestamp": 1654103837,
"sign": "f027612e0e6cb321ca161de060237eeb97e46000da39d3add08d09074f931728"
}
app_id=816
app_key=rTaasVHeteGbhwBx
Field | Type | Description |
---|---|---|
project | Integer | ID of merchant |
invoice | Integer | Merchant's payment ID |
status | String | Payment status. Could be created, inprogress, paid, expired or rejected |
amount | Integer | Payment amount |
amount_paid | Integer | Actually paid amount (in merchant's currency) |
rand | String | Random string |
В запросе передается заголовок Authorization
, в котором находится подпись.
- Отсортировать параметры по алфавиту.
- Объединить поля, используя разделитель
.
. - К концу получившейся строки добавить
app_key
. - Получить из неё MD5 хеш.
Authorization: d84eb9036bfc2fa7f46727f101c73c73
{
"project": 816,
"invoice": 73,
"status": "completed",
"amount": 700,
"amount_paid": 700,
"rand": "SNuHufEJ"
}