Архив: Reverse engineering мобильного приложения на android
- Описание
В проекте необходимо воспроизвести некоторый reverse engineering приложения диди такси который на андроид https://play.google.com/store/apps/details?id=com.didiglobal.passenger&hl=ru
Конечный продукт должен из себя представлять некоторую клиент-серверную программу которую можно запустить одной командой строкой на удаленном хосте
Далее эта программа слушает запросы которые прилетают к ней.
Определение "ручка" -- некоторый http запрос
Все запросы выполняются клиентом, а потому нужно реализовать backend
Необходимо логировать все действия
Бонусом будут наличие функциональных тестов
Важно добавить возможность передавать параметры для прокси.
Функционал:
1) Регистрация как клиент:
Одним запросом (POST) передается номер для регистрации, ФИО и почта в теле запроса, после чего сервер ожидает второго запроса.
В этот момент диди отправляет код для регистрации.
Далее отправляется второй запрос с данным кодом и таким образом регистрируется аккаунт. Возвращается id (генерится на стороне backend) регистрируемого аккаунт для того, чтобы по данному айди можно было производить следующие действия.
2) Привязка оплаты:
По данному id идет привязка карты
Аналогично реализовать привязку карты для оплаты
В тело запроса передается номер карты, срок, cvc/cvv
Следующим запросом передается смс для оплаты
также обработать процесс привязки. Карта может не привязаться необходимо вернуть ошибку привязки.
3) Вызов такси:
Передается адреса начальной и конечной точек с данным айди
Далее производится вызов такси. Вернуть ОК если удалось успешно начать вызов такси с оплатой по карте, если нет то вернуть причину отказа
Так как поиск занимает некоторое время то после данного запроса отправляются запросы с проверкой статуса заказа
а) Если таксист еще не найден то вернуть сообщение которое дает понять, что происходит поиск такси
б) Если таксист найден, то вернуть: время ожидания, информацию о машине, ФИО таксиста, номер телефона таксиста. Для того, чтобы пользователь смог понять в какую машину сесть.
в) Если таксист отменил заказ, то сообщить данный кейс. Вообще такси должно попытаться выбрать нового таксиста и так как это снова может быть статуса ожидания таксиста, то вернуть сообщение а)
г) таксист прибыл в указанное местоположение. Вернуть информацию о водителе также как и в пункте б)
Поддержать ручку отмены заказа. Вернуть ОК, если удалось успешно отменить заказ. При этом вернуть статуса водителя. Например если водитель прибыл уже на местоположение, то вернуть статус того, что водитель прибыл. Грубо говоря дать понять то, что деньги были списаны.
По итогу нужно видео где по данным ручкам удалось зарегистрировать и заказать такси с оплатой по карте.
Готовым результатом будет то, что я смогу зарегистрировать и вызвать такси раз 10-20 через данное API
Будет большим плюсом, если возможно созвониться через zoom
- Категория
Похожие проекты
Похожая удалённая работа
- Удаленная работа для веб-программиста
- Удаленная работа для разработчика баз данных
- Удаленная работа для прикладного программиста
- Удаленная работа для системного программиста
- Удаленная работа для разработчика игр
- Удаленная работа для разработчика мобильных приложений
- Удаленная работа для тестировщика ПО
- Удаленная работа для 1С программиста
- Удаленная работа для разработчика встраиваемых систем
- Удаленная работа для разработчика CRM и ERP