Included XML files for the "pay to new number" and "pay to old number" features in the Ozon platform.
4.0 KiB
4.0 KiB
Task API
Управление задачами: получение очереди, добавление задач, отправка результатов.
GET /api/v1/task/get_tasks 🔒
Получить список задач в очереди для текущего профиля.
Ответ:
{
"success": true,
"data": [
{
"bank_name": "ozon",
"material_id": 42,
"type": "FETCH_PROFILE",
"body": {}
},
{
"bank_name": "birbank",
"material_id": 7,
"type": "FETCH_TRANSACTIONS",
"body": {}
},
{
"bank_name": "ozon",
"material_id": 5,
"type": "CREATE_TRANSACTION",
"body": {
"amount": 1000,
"currency": 643,
"type": "bank",
"bank_participator_id": "string",
"extra": {}
}
}
]
}
Типы задач:
type |
Описание | body |
|---|---|---|
FETCH_PROFILE |
Получить баланс и данные аккаунта | пустой {} |
FETCH_TRANSACTIONS |
Получить историю транзакций | пустой {} |
CREATE_TRANSACTION |
Выполнить перевод | CreateTransactionBody |
CreateTransactionBody:
{
"amount": 1000,
"currency": 643,
"type": "bank",
"bank_participator_id": "string",
"extra": {}
}
currency— ISO 4217 numeric код валюты (643 = RUB, 840 = USD, 944 = AZN, 410 = KRW)type—"bank"или"top-up"
POST /api/v1/task/task_result 🔒
Отправить результат выполненной задачи.
Тело запроса зависит от типа задачи (discriminator — поле type).
FETCH_PROFILE
{
"type": "FETCH_PROFILE",
"material_id": 42,
"bank_name": "ozon",
"data": {
"bank_account_id": "string",
"currency": 643,
"amount": 15000,
"extra": {}
}
}
FETCH_TRANSACTIONS
{
"type": "FETCH_TRANSACTIONS",
"material_id": 7,
"bank_name": "birbank",
"data": [
{
"bank_transaction_id": "string",
"amount": 500,
"currency": 944,
"transaction_type": "bank",
"bank_participator_id": "string",
"status": "completed",
"extra": {},
"created_at": "2024-01-01T12:00:00"
}
]
}
CREATE_TRANSACTION
{
"type": "CREATE_TRANSACTION",
"material_id": 5,
"bank_name": "ozon",
"data": {
"bank_transaction_id": "string",
"amount": 1000,
"currency": 643,
"transaction_type": "bank",
"bank_participator_id": "string",
"status": "completed",
"extra": {}
}
}
TransactionStatusEnum: "progress" | "completed" | "declined"
POST /api/v1/task/add_task
Добавить задачу в очередь (вызывается внешней системой, не клиентом).
POST /api/v1/task/add_bank
Зарегистрировать банк с webhook-URL.
Query параметры:
| Параметр | Тип | Описание |
|---|---|---|
bank_name |
string | Название банка |
webhook_url |
uri | URL для уведомлений |
Ошибка выполнения задачи
Если задача не может быть выполнена (аккаунт не найден, скрипт упал), в поле data передаётся:
{
"type": "FETCH_PROFILE",
"material_id": 42,
"bank_name": "ozon",
"data": {
"status": "error",
"description": "Account not found for material_id: 42"
}
}
Связь с кодом проекта
| API | Метод в коде |
|---|---|
GET /api/v1/task/get_tasks |
NetworkService::getTasks() |
POST /api/v1/task/task_result |
NetworkService::postTaskResult() |
Хелпер в EventHandler: sendTaskResult(type, materialId, bankName, data) — создаёт NetworkService в отдельном потоке и вызывает postTaskResult().