Разработать прототип интеграции с платежным провайдером

30 000 руб. за проект
06 мая 2021, 15:14 • 2 отклика • 51 просмотр
Технологии
  • Java 8
  • JNI
  • C++
Описание задачи
  • Создать консольное приложение. Будем запускать на сервере под ubuntu 64-bit.
  • Приложение должно вызвать несколько API, получить успешный статус и валидировать ответ от платежного провайдера.
  • Код с бизнес логикой не привязан к консольному приложению и легко отделяем. Консоль - это тестовое приложение, ваш код будет интегрирован в крупное приложение отдельной командой разработчиков.
  • Перед тем как делать, нужно рассказать как будет сделано (общие принципы + ООП) - ваше предложение возможно будет подкорректировано на этапе проектирования. По готовности, нужно объяснить и показать, как все сделано на английском языке. Возможны замечания с нашей стороны - если что-то сделано криво. Если с английским плохо, можно голосом с рускоговорящим, а текстом на англ для остальных.
  • Документация по интеграции есть, однако необходимо общаться с тех персоналом платежного провайдера, так как интеграция не стандартная и может что то не сработать по документу. Будет чат в телеге. Имейте ввиду, что команда платежного провайдера отвечает оперативно, но не мгновенно. Из-за этого сроки сдачи могут немного затянуться.
Технические детали
  • Создаем сообщение в определенном формате: “ПАРАМЕТР=ЗНАЧЕНИЕ”. Например, “PHONE=0951234567”. Вы получите описание набора параметров для составления сообщения.
  • Подписываем сообщение и добавляем метаданные с помощью библиотеки. https://github.com/lumpov/cyberplat/tree/master/ip... Библиотека нужна для подписи сообщения и "упаковки" сообщения в определенный формат. Библиотеку необходимо будет скомпилировать под линукс и запускать через JNI. Как сказано выше, должно работать на ubuntu 64bit. В репозитории уже есть работа с библиотекой на java https://github.com/lumpov/cyberplat/tree/master/ip... Вы получите тестовые приватные ключи для подписи.
  • Формируем запрос для отправки на сервер по HTTP. Производим URL-кодирование для полученного сообщения. Латинские буквы и цифры остаются без изменений, остальные символы передаются в шестнадцатеричной нотации с префиксом ‘%’. Например, “%OD%OA” – перевод строки. Пробелы могут быть заменены на символы ‘+’. В начале строки подставляется "inputmessage=". Сообщение передается на сервер платежной системы в теле HTTP запроса методом POST с указанием заголовков “Content-Length” и “Content-Type”.
  • Вызываем 3 API по определенному URL: проверка параметров, непосредственно проведение платежа, проверка статуса платежа
  • Получаем ответ от платежного провайдера, проверяем подпись с помощью библиотеки, разбираем ответ, кидаем наружу (в вашем случае в консоль) информацию об операции.