Заплановано
Подключение оставшихся функций Fstata к внутреннему АПИ Екардс
Заплановано⏱️ Время в статусах:
Ваше імя та посада:
Саша фин
Оберіть предмет роботи в вашій задачі::
10 - Операционные задачи
Reach (Охоплення):
4
Impact (Вплив):
3
Confidence (Впевненість):
1
1. Бізнес-задача:
Подключение оставшихся функций Fstata к внутреннему АПИ Екардс.
ИНСТРУКЦИЯ
Нужны email и пароль от личного кабинета ecardsnew.cab (обычный логин, которым заходят на сайт в браузере). API-токен для этого не подходит — внутренний API работает только через такой логин.
Шаг 2. Получить токен (залогиниться через API)
Отправить POST-запрос:
POST https://ecardsnew.cab/user/v1/guest/auth/sign-in
Content-Type: application/json
{
"email": "почта@example.com",
"password": "пароль"
}
Пример на Python:
import requests
resp = requests.post(
"https://ecardsnew.cab/user/v1/guest/auth/sign-in",
json={"email": "почта@example.com", "password": "пароль"}
)
data = resp.json()["data"]
access_token = data["accessToken"]
refresh_token = data["refreshToken"]
В ответе придут два токена:
- accessToken — им пользоваться для запросов. Живёт 15 минут.
- refreshToken — нужен только чтобы обновить accessToken без повторного ввода пароля. Живёт 1 час.
Шаг 3. Пользоваться API
Каждый запрос к внутреннему API (эндпоинты вида /api/modern/account/v1/...) должен содержать заголовок с токеном:
Authorization: Bearer <accessToken>
Пример — получить список карт:
headers = {"Authorization": f"Bearer {access_token}"}
resp = requests.get(
"https://ecardsnew.cab/api/modern/account/v1/user/card?limit=100&offset=0",
headers=headers
)
print(resp.json())
Шаг 4. Когда accessToken истёк (прошло больше 15 минут)
Не логиниться заново email+паролем, а обновить токен через refreshToken:
resp = requests.post(
"https://ecardsnew.cab/user/v1/guest/auth/refresh",
json={"refreshToken": refresh_token}
)
data = resp.json()["data"]
access_token = data["accessToken"]
refresh_token = data["refreshToken"] # тоже обновится
Так можно продлевать сессию, пока refreshToken не истёк (1 час). Если истёк и он — нужно заново выполнить Шаг 2 (полный логин email+паролем).
1. Зайти в кабинет ecardsnew.cab в браузере, открыть DevTools → вкладку Network.
2. Выполнить руками через интерфейс ровно то действие, которое нужно повторить через API:
- изменить лимит карты — найти в кабинете, где это делается вручную, и сохранить;
- убрать карту из группы — сделать это через интерфейс кабинета.
3. В списке Network найти появившийся запрос (set-limits или set-groups), открыть вкладку Payload — там будет точное тело запроса, которое реально ожидает сервер.
4. Скопировать этот формат один в один (те же названия полей, те же типы — строка/число/массив) и уже с ним делать запрос из кода, подставляя нужные значения.
ЧТО НЕОБХОДИМО СДЕЛАТЬ
1. Раздел работа с картами - Ecards - Выпустить карты
тут нужно убрать лимит на 100 долларов при создании карты, что бы была возможность выпустить карту с лимитом более 100 долларов за счет изменения лимита в процессе выпуска карты
2. Раздел работа с картами - Ecards - Изменить лимиты
тут сделать аналогично подразделу закрыть карты, с таким же интерфейсом возможностью поиска карты, но добавить окошко с вводом нового лимита карты (вставляем список карт - вводим сумму нового лимита - новый лимит применяется ко всем картам из списка)
3. Раздел работа с картами - Ecards - Сменить группу
Так же само окно поиска карт списком + окошко выбора новой группы, при подтверждении новой группы, текущая убирается с карты
4. Раздел работа с картами - Ecards - Передать карты
добавить стирание текущей группы при передаче карты (не удаление группы в целом, а именно с выбранных карт с поля группа)
5. Раздел работа с картами
вверху между названием "работа с картами" и выбором вариантов работы с картами добавить два вида оповещений
слева в желтом стиле (по аналогии с как сделаны предупреждения о расхождениях в аналитике ПП) - карты у которых есть несколько групп на екардс, карты у которых нет групп - выводить только активные карты
Справа в красной рамке - если есть ошибка при выполнении какой-то задачи ее тут высветить, например не закрылась карта из-за того что бин не рабочий и не дает закрыть или произошла ошибка в апи или другая ошибка, что бы было видно причины ошибок + добавить в это красное меню кнопку "Ознакомлен" или что то такое рядом с каждой ошибкой, что бы можно было убрать, если ознакомился с ней.
2. Проблема:
Реализовать оставшийся функционал работы с картами на Fstata
3. Результат:
Повышение эффективности работы с карточными сервисами
———————————————
This task was submitted through Задача для команди розробників
https://form.asana.com/?k=fobW-bIMbYRVunZ8OITdZQ&d=1213085580025651
История изменений
Dmytri_Ta
Backlog
active