Giter Club home page Giter Club logo

diploma's Introduction

Diploma

Данный проект включает в себя модуль агрегации, сверки и фискализации платежей для IT-платформы зарядки электротранспорта TOUCH города Волгограда и Волжского


Необходимые зависимости для работы модуля

.NET 7 - фреймворк, на котором разработан модуль

MS SQL Server 2019 - СУБД

JRE 8.371 - минимальная реализация виртуальной машины Java Virtual Machine, необходимая для работы Apache Zookeeper и Apache Kafka

Apache Zookeeper 3.8.1 - открытая программная служба для координации распределённых систем, необходимая для работы Apache Kafka

Apache Kafka 3.4.0 - брокер сообщений

Модуль работает с банком ПСБ для совершения рекуррентных платежей по следующему принципу:

В топик брокера сообщений приходит запрос на рекуррентный платеж с информацией об оплате в виде JSON. Набор необходимых полей:

  • сумма платежа;
  • внутренний идентификатор платежа;
  • описание платежа;
  • название торгово-сервисного предприятия;
  • электронная почта клиента;
  • электронная почта торгово-сервисного предприятия;
  • уникальный идентификатор зарядной сессии;
  • телефон клиента;
  • уникальный номер виртуального терминала торгово-сервисного предприятия;
  • уникальный идентификатор торгово-сервисного предприятия;

Состояние сессий, результаты рекуррентных платежей и фискализации хранятся в БД, представленной следующими сущностями:

Сущность Session(сессия):

  • SessionID – уникальный идентификатор сессии;
  • Status – статус сессии;
  • SumByPlatform – сумма, затраченная в ходе зарядной сессии;
  • SumByBank – сумма, успешно списанная банком;
  • SumDifference – разность SumByPlatform и SumByBank.

Сущность Payment(платеж):

  • PaymentID – уникальный идентификатор платежа;
  • Amount − сумма рекуррентного платежа;
  • Rrn (Reference Retrieval Number) – уникальный идентификатор банковской транзакции, который назначается банком Эквайрером при инициализации платежа;
  • BankResponseCode – код ответа банка;
  • BankResponseText – текст ответа банка;
  • Description – описание платежа;
  • Timestamp – время платежа;
  • SessionID – идентификатор зарядной сессии, в ходе которой произведен платеж.

Сущность Check(фискальный чек):

  • CheckID – уникальный идентификатор сессии;
  • Sum – сумма фискального чека;
  • Status – статус сессии;
  • OfdReceiptUrl– ссылка на фискальный чек в системе «Первый ОФД»;
  • Timestamp – время платежа;
  • SessionID – идентификатор зарядной сессии, в ходе которой произведена фискализация чека.

Набор маршрутов модуля

Точка обращения к API Метод Описание
/Session/GetSessions GET Получить список всех сессий
/Session/GetSessions/{id} GET Получить сессию по ID
/Session/GetSessions DELETE Удалить сессию по ID
/Payment/GetPayments GET Получить список всех платежей
/Payment/GetPayments/{id} GET Получить платеж по ID
/Check/GetChecks GET Получить список всех чеков
/Check/GetChecks/{id} GET Получить чек по ID
/Check/GetChecks/{uuid} GET Получить чек по UUID

diploma's People

Contributors

r0acho avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.