diff --git a/content/docs/readme/Bender/readme.md b/content/docs/readme/Bender/readme.md new file mode 100644 index 0000000..2640be0 --- /dev/null +++ b/content/docs/readme/Bender/readme.md @@ -0,0 +1,25 @@ +# Bender + + + +## Содержание + +- [Общее описание](#Общее-описание) +- [Принцип функционирования сервиса](#Принцип-функционирования-сервиса) +- [Связанные сервисы](#Связанные-сервисы) +- [Составители](Составители) + +## Общее описание + +**Bender (External ID for Distributed Systems Service)** - сервис генерации идентификаторов. Позволяет генерировать идентификаторы для сущностей платформы, что используется в других сервисах для обеспечения [идемпотентности](https://en.wikipedia.org/wiki/Idempotence) операций. + +## Пример функционирования сервиса + +При вызове любого метода платформы, использующего уникальный идентификатор (например, id инвойса при вызове метода [`CreateInvoice`](https://developer.rbk.money/api/#operation/createInvoice) или id плательщика при вызове метода [`CreateCustomer`](https://developer.rbk.money/api/#operation/createCustomer)), сервис формирует id для объекта платформы и дальнейшего мониторинга состояния этого объекта. + +## Связанные сервисы + +* `Machinegun` +* `CAPI` + +## Составители diff --git a/content/docs/readme/Hooker/Hooker_Readme.md b/content/docs/readme/Hooker/Hooker_Readme.md new file mode 100644 index 0000000..20f47bc --- /dev/null +++ b/content/docs/readme/Hooker/Hooker_Readme.md @@ -0,0 +1,63 @@ +# Hooker + + + +## Содержание +- [Общее описание](#Общее-описание) + - [Стратегия доставки webhook'ов](#Стратегия-доставки-webhook'ов) + - [Авторизация полученных сообщений](#Авторизация-полученных-сообщений) +- [Сценарии работы сервиса](#Сценарии-работы-сервиса) + - [Типы событий инвойса (InvoicesTopic)](#Типы-событий-инвойса-(InvoicesTopic)) + - [Типы событий плательщика (CustomersTopic)](#Типы-событий-плательщика-(CustomersTopic)) +- [Связанные сервисы](#Cвязанные-сервисы) +- [Составители](#Составители) + + +## Общее описание + +**Hooker (Webhooks Notifications and Management Service)** – сервис, определяющий протокол доставки асинхронных оповещений о возникновении новых событий в рамках организации, которые сервис доставляет в виде HTTP-запросов на URL-адреса webhook'ов, указанных при их формировании. Информацию о произошедших событиях сервис получает из базы данных Kafka. + +**Webhook** - это подписка на определенный тип события либо их группу, касающихся различных объектов в рамках организации. Для управления webhook'ами используются методы RBKmoney API, описанные в спецификации [RBKmoney Webhooks Management API](https://rbkmoney.github.io/api/#tag/Webhooks). Когда наступает одно из событий в рамках определенного инвойса (например, изменение статуса инвойса или платежа по этому инвойсу), платформа выбирает webhook, подходящий под этот тип события, и отправляет HTTP-запрос, содержащий сообщение в формате [JSON](https://www.json.org/json-en.html) на указанный в этом webhook'е URL. Если создано несколько webhook'ов, подходящих под указанный тип события, то сообщение о возникновении события доставляется одновременно на все заданные в webhook'ах URL в неопределённом порядке. Максимальное количество webhook'ов для одного магазина - 10 штук. + +### Стратегия доставки webhook'ов +Платформа гарантирует порядок доставки сообщений о произошедших событиях в рамках определенного инвойса, никакое событие не может быть пропущено и доставлено не в порядке возникновения в платформе. Платформа поддерживает очередь сообщений для каждого инвойса для того, чтобы соблюсти эти гарантии. + +Запрос на доставку считается успешным только при получении ответа со статусом `200`. Платформа будет ожидать успешного ответа на отправленный запрос в течение 10 секунд. В случае ответа с любым другим статусом или по истечении указанного времени, отведённого на обработку оповещения, платформа будет пытаться повторно доставить оповещения до получения успешного ответа, либо до принятия решения о невозможности доставить информацию. Попытки доставки будут производиться со следующими временными интервалами между запросами: +- 30 секунд; +- 5 минут; +- 15 минут; +- 1 час; +- каждый час в течении суток (24 часа). + +Если последняя попытка в течении суток доставить оповещение оканчивается неудачей, все события, которые накопились в очереди этого инвойса, отбрасываются. + +### Авторизация полученных сообщений +Платформа подтверждает подлинность оповещений, подписывая сообщения приватным ключом, уникальным для каждого webhook'а, парный публичный ключ к которому содержится в данных этого webhook'а. Подпись передается в HTTP-заголовке Content-Signature. В заголовке в виде различных атрибутов содержится информация об использованном при формировании подписи алгоритме и значение подписи в формате [URL-safe base-64](https://tools.ietf.org/html/rfc4648). Пример подписи представлен ниже. + +``` +Content-Signature: alg=RS256; digest=zFuf7bRH4RHwyktaqHQwmX5rn3LfSb4dKo... +``` + + + +#### Алгоритм [RS256](https://tools.ietf.org/html/rfc7518#section-3.3) + +Подпись формируется согласно алгоритму [RSASSA-PKCS1-v1_5](https://tools.ietf.org/html/rfc3447#section-8.2), на вход которому подаётся результат вычисления хэша сообщения по алгоритму [SHA-256](https://tools.ietf.org/html/rfc6234). + + +## Сценарии работы сервиса +Сервис Hooker может создавать webhook'и для двух типов событий: +1. типы событий инвойса (InvoicesTopic); +2. типы событий плательщиков (CustomersTopic). + +### Типы событий инвойса (InvoicesTopic) +Подробное описание webhook'ов для типов событий инвойса описано на примере [кейса проведения платежа](https://github.com/volkov-sergei/coredocs/tree/master/docs/Readme/Hooker/Кейс обычного платежа.md). + +### Типы событий плательщика (CustomersTopic) +Подробное описание webhook'ов для типов событий плательщика описано на примере [кейса создания рекуррента](https://github.com/volkov-sergei/coredocs/tree/master/docs/Readme/Hooker/Кейс создания рекуррента.md). + +## Cвязанные сервисы +* `Hellgate` +* `Kafka cluster` + +## Составители \ No newline at end of file diff --git a/content/docs/readme/Hooker/rec_from_first_payment.md b/content/docs/readme/Hooker/rec_from_first_payment.md new file mode 100644 index 0000000..b3da5e8 --- /dev/null +++ b/content/docs/readme/Hooker/rec_from_first_payment.md @@ -0,0 +1,22 @@ +# Создание рекуррента через проведение первого платежа + +Рассмотрим кейс создания привязки покупателя для проведения рекуррентных платежей с помощью первого платежа. + +Ниже приведен сценарий создания рекуррента через первый платеж с помощью методов API, предоставляемых платформой. + +1. В платформе создается новый инвойс методом [`createInvoice`](https://developer.rbk.money/api/#operation/createInvoice). Инвойсу присваивается уникальный *invoiceId*. +2. Методом [`createCustomer`](https://developer.rbk.money/api/#operation/createCustomer) в платформе создается новый плательщик. Метод присваивает покупателю уникальный `id` и пользовательский токен доступа `customerAccessToken.payload`. +3. По полученным `id` и `customerAccessToken.payload` платформа формирует ссылку формы `Checkout`. +4. Мерчант предоставляет плательщику ссылку формы `Checkout`, в которой плательщик вводит данные платежного инструмента и указывает согласие для использования этого платежного инструмента в дальнейших безакцептных списаниях. +5. Форма `Checkout` внутренними алгоритмами формирует новый платеж методом [`createPayment`](https://developer.rbk.money/api/#operation/createPayment). В поле запроса `makeRecurrent` устанавливается параметр `true`. + * В поле `type` указывается по какой схеме совершается платеж: + - по одностадийной схеме `PaymentFlowInstant`; + - по двухстадийной схеме `PaymentFlowHold`. +6. Платежу присваивается уникальный *id*. +7. Плательщик подтверждает списание платежных средств с помощью прохождения 3D-Secure. +8. Если платеж прошел успешно, то *invoiceId* и *id* платежа (п.6) в дальнейшем будут использоваться в качестве родительских. + * При следующих платежах в объекте `Payer` будут указаны следующие данные: + "payerType": "RecurrentPayer", + "recurrentParentPayment": + "invoiceID": "*invoiceID* полученный при инициализирующем платеже", + "paymentID": "*id* инициализирующего платежа" \ No newline at end of file diff --git "a/content/docs/readme/Hooker/\320\232\320\265\320\271\321\201 \320\276\320\261\321\213\321\207\320\275\320\276\320\263\320\276 \320\277\320\273\320\260\321\202\320\265\320\266\320\260.md" "b/content/docs/readme/Hooker/\320\232\320\265\320\271\321\201 \320\276\320\261\321\213\321\207\320\275\320\276\320\263\320\276 \320\277\320\273\320\260\321\202\320\265\320\266\320\260.md" new file mode 100644 index 0000000..0013f5e --- /dev/null +++ "b/content/docs/readme/Hooker/\320\232\320\265\320\271\321\201 \320\276\320\261\321\213\321\207\320\275\320\276\320\263\320\276 \320\277\320\273\320\260\321\202\320\265\320\266\320\260.md" @@ -0,0 +1,32 @@ +Рассмотрим кейс обычного платежа плательщика мерчанту через платформу. +Мерчант решил установить webhook'и (в личном кабинете) на все возможные события, предоставляемые платформой (мерчант может выбрать любой набор webhook'ов для необходимых событий). Также мерчант может установить необходимые webhook'и, используя API, методом [CreateWebhok](https://developer.rbk.money/api/#operation/createWebhook) и, указывая необходимые параметры. +Обратная связь от webhook'ов поступает на бэкенд мерчата с помощью сервиса `Hooker`. +После срабатывания триггера любого webhook'а, мерчанту приходит об этом оповещение на указанный при добавлении webhook'а URL. +Ниже представлен сценарий проведения платежа с указанием событий, активирующих определенные webhook'и. +Возможно создать webhook'и для нижеперечисленных событий: +* InvoiceCreated - создан новый инвойс; +* InvoicePaid - инвойс перешел в состояние "Оплачен"; +* InvoiceCancelled - инвойс отменен по истечению срока давности; +* InvoiceFulfilled - инвойс успешно погашен; +* PaymentStarted - создан платеж; +* PaymentProcessed - платеж обработан; +* PaymentCaptured - платеж успешно завершен; +* PaymentCancelled - платеж успешно отменен; +* PaymentRefunded - платеж успешно возвращен; +* PaymentFailed - при проведении платежа возникла ошибка; +* PaymentRefundCreated - возврат платежа успешно создан; +* PaymentRefundSucceeded - возврат платежа прошел успешно; +* PaymentRefundFailed - возврат платежа завершился неудачей. + +1. Плательщик выбрал в магазине мерчанта необходимый товар, добавил его в корзину, готов перейти к процедуре оплаты. +2. Бэкенд мерчанта методом [createInvoice](https://developer.rbk.money/api/#operation/createInvoice) создает инвойс с указанием окончания срока действия. Платформа возвращает бэкенду мерчанта сформированный инвойс, ключ для доступа к инвойсу - `invoiceAccessToken` и платежную ссылку. +3. Срабатывает триггер webhook'а `InvoiceCreated (Создан новый инвойс)`. +4. Бэкенд мерчанта направляет плательщику платежную ссылку, при переходе по которой у плательщика появится форма `Checkout`. Плательщик вводит необходимые для оплаты данные и нажимает кнопку оплаты. + - Если покупатель не ввел в форму `Checkout` данные об оплате в течении заданного мерчантом времени, инвойс переходит в статус "Отменен" и срабатывает триггер webhook'а `InvoiceCancelled (инвойс отменен по истечению срока давности)`. +5. По введенным в форму `Checkout` данным внутренние методы платформы вызывают метод [createPaymentResource](https://developer.rbk.money/api/#operation/createPaymentResource). В платформе создается одноразовый токен платежного средства `paymentToolToken`, предоставленного плательщиком, а также новая уникальная платежная сессия `paymentToolSession`. +6. Бэкенд мерчанта методом [createPayment](https://developer.rbk.money/api/#operation/createPayment) создает в платформе новый платеж и передает следующие токены платформе: `invoiceAccessToken`, `paymentToolToken` и `paymentToolSession`. Срабатывает триггер webhook'а `PaymentStarted (создан платеж)`. +7. Проводится авторизация плательщика методом холдирования платежных средств на платежном инструменте. + - Если не получилось произвести процедуру холдировнаия платежных средств (например, неправильно введен номер карты или недостаточно средств на счете), то срабатывает триггер webhook'а `PaymentFailed (при проведении платежа возникла ошибка)`. +8. При успешном прохождении холдирования срабатывает триггер webhook'а `PaymentProcessed (платеж обработан)`. + - Если после ввода платежных данных плательщик решает отменить платеж, то это вызывает срабатывание триггера webhook'а `PaymentCancelled (платеж успешно отменен)`. +9. Мерчант может проверить корректность платежа webhook'ом `PaymentCaptured (платеж успешно завершен)`. Инвойс переходит в статус "Оплачен". Так же успешность платежа можно проверить вызовом webhook'а `InvoicePaid (инвойс перешел в состояние "Оплачен")`. После этого мерчант может собственноручно перевести инвойс в статус "Погашен", после чего сработает триггер webhook'а `InvoiceFulfilled (инвойс успешно погашен)`. diff --git "a/content/docs/readme/Hooker/\320\232\320\265\320\271\321\201 \321\201\320\276\320\267\320\264\320\260\320\275\320\270\321\217 \321\200\320\265\320\272\321\203\321\200\321\200\320\265\320\275\321\202\320\260.md" "b/content/docs/readme/Hooker/\320\232\320\265\320\271\321\201 \321\201\320\276\320\267\320\264\320\260\320\275\320\270\321\217 \321\200\320\265\320\272\321\203\321\200\321\200\320\265\320\275\321\202\320\260.md" new file mode 100644 index 0000000..08a2e8d --- /dev/null +++ "b/content/docs/readme/Hooker/\320\232\320\265\320\271\321\201 \321\201\320\276\320\267\320\264\320\260\320\275\320\270\321\217 \321\200\320\265\320\272\321\203\321\200\321\200\320\265\320\275\321\202\320\260.md" @@ -0,0 +1,26 @@ +Рассмотрим кейс создания привязки покупателя для проведения рекуррентных платежей. +Webhook'и установлены на каждое возможное событие, предоставляеое платформой методом [`createWebhook`](https://developer.rbk.money/api/#operation/createWebhook). Мерчант может выбрать любые вебхуки из списка ниже: +* CustomerCreated - покупатель успешно создан; +* CustomerDeleted - покупатель успешно удален; +* CustomerReady - покупатель готов к проведению платежей, после биндинга; +* CustomerBindingStarted - создание связки начато; +* CustomerBindingSucceeded - связка успешно создана; +* CustomerBindingFailed - связка не создана по каким-либо причинам. + +Обратная связь от webhook'ов поступает на бэкенд мерчанта с помощью сервиса `Hooker`. +После срабатывания триггера любого webhook'а, мерчанту приходит об этом оповещение на указанный при добавлении webhook'а URL. + +Ниже приведен сценарий создания связки плательщик - платежное средство для рекуррентного платежа с помощью методов API, предоставляемых платформой. Плательщик уже зарегистрирован в магазине мерчанта. + +1. В платформе создается новый плательщик методом [`createCustomer`](https://developer.rbk.money/api/#operation/createCustomer), после чего происходит срабатывание триггера webhook'а `CustomerCreated`. Метод присваивает покупателю уникальный `id` и пользовательский токен доступа `customerAccessToken.payload`. +2. По полученным `id` и `customerAccessToken.payload` платформа формирует ссылку формы `Checkout` для создания связки плательщик - платежное средство. +4. Мерчант предоставляет плательщику ссылку формы `Checkout`, в которой плательщик вводит данные платежного инструмента. +5. Мерчант методом [`createPaymentResource`](https://developer.rbk.money/api/#operation/createPaymentResource) создает в платформе платежный инструмент покупателя по указанным в форме `Checkout` данным. После выполнения метода создается токен платежного средства `paymentToolToken`. +6. Мерчант методом [`createBinding`](https://developer.rbk.money/api/#operation/createBinding) создает привязку пользователя к платежному инструменту, что активизирует триггер вебхука `CustomerBindingStarted`. +7. Проводится авторизация плательщика методом холдирования платежных средств на платежном инструменте. + - Если во время авторизации произошла ошибка - это активирует триггер webhook'а `CustomerBindingFailed` и в ответе на запрос в строке "status" указывается значение "failed". +8. Банк - эмитент направляет сообщение по протоколу [3D-Secure](https://en.wikipedia.org/wiki/3-D_Secure). +9. С платежного средства плательщика будет списано 10 рублей (если валюта магазина мерчанта - рубли, 1 евро (если валюта магазина мерчанта - евро) или 1 доллар (если валюта магазина мерчанта - доллар). После чего списанные средства поступают обратно на платежное средство плательщика. +10. При успешно созданной связке, активируется триггер вебхука `CustomerBindingSucceeded`. В ответе на запрос в строке "status" указывается значение "succeeded". +11. После создания связки активируется триггер webhook'а `Customer Ready`. +12. Если хранящаяся в платформе связка покупатель - платежное средство будет удалена методом [deleteCustomer](https://developer.rbk.money/api/#operation/deleteCustomer), в котором указывается уникальный идентификатор покупателя, это послужит триггером для webhook'а `CustomerDeleted`. diff --git a/content/docs/readme/Shumway/readme.md b/content/docs/readme/Shumway/readme.md new file mode 100644 index 0000000..2c2df7f --- /dev/null +++ b/content/docs/readme/Shumway/readme.md @@ -0,0 +1,26 @@ +# Shumway + + + +## Содержание +- [Общее описание](#Общее-описание) +- [Принцип работы сервиса](#Принцип-работы-сервиса) +- [Связанные сервисы](#Связанные-сервисы) + +## Общее описание +**Shumway (Accounting Management Service)** - сервис, отвечающий за отслеживание балансов участников платформы. + +## Принцип работы сервиса + +При инициализации изменения баланса счета, например, сервисами **Payouter** или **Hellgate** формируется *batch* (batch - набор проводок). Далее из набора batch'ей формируется план проводок, который передается в **Shumway**. **Shumway** производит следующие операции: +1. холдирует необходимое количество платежных средств на счете плательщика; +2. предоставляет вызывающему сервису баланс счета после произведения холда; +3. - если баланс плательщика не опустился ниже нуля, то вызывающий сервис совершает коммит (подтверждение платежа); + - если баланс плательщика опустился ниже нуля, то вызывающий сервис совершает роллбэк (отмена платежа). + +## Связанные сервисы + +- `Hellgate` +- `Payouter` + +## Составители diff --git a/content/docs/readme/dominant/dominant_readme.md b/content/docs/readme/dominant/dominant_readme.md new file mode 100644 index 0000000..5663127 --- /dev/null +++ b/content/docs/readme/dominant/dominant_readme.md @@ -0,0 +1,97 @@ +# Dominant + + + +## Содержание +- [Общее описание](#Общее-описание) +- [Объекты сервиса, настраиваемые с помощью Command-center](#Объекты-сервиса,-настраиваемые-с-помощью-Command-center) + - [CurrencyObject](#CurrencyObject) + - [CategoryObject](#CategoryObject) + - [PaymentMethodObject](#PaymentMethodObject) + - [ContractTemplateObject](#ContractTemplateObject) + - [TermSetHierarchyObject](#TermSetHierarchyObject) + - [ProxyObject](#ProxyObject) + - [ProviderObject](#ProviderObject) + - [WithdrawalProviderObject](#WithdrawalProviderObject) + - [P2PProvider](#P2PProvider) + - [PayoutMethodObject](#PayoutMethodObject) + - [TerminalObject](#TerminalObject) + - [PaymentInstitutionObject](#PaymentInstitutionObject) + - [CalendarObject](#CalendarObject) + - [BusinessScheduleObject](#BusinessScheduleObject) + - [SystemAccountSetObject](#SystemAccountSetObject) + - [ExternalAccountSetObject](#ExternalAccountSetObject) + - [InspectorObject](#InspectorObject) + - [P2PInspectorObject](#P2PInspectorObject) + - [GlobalsObject](#GlobalsObject) +- [Связанные сервисы](#Связанные-сервисы) +- [Составители](#Составители) + +## Общее описание +**Dominant (Domain Configuration Service)** - сервис, обеспечивающий хранение конфигураций домена платформы. Конфигурация состоит из объектов протокола [damsel](https://github.com/rbkmoney/damsel/blob/master/proto/domain.thrift), объединенных в ревизии. При изменении, как минимум, одного из параметров любого объекта, образуется новая ревизия. Список произошедших изменений хранится в сервисе *Machinegun*. + +Настройки данных объектов могут производиться с помощью: +1. графического web- интерфейса *Control center*; +2. методов [API](https://github.com/rbkmoney/damsel/blob/master/proto/domain.thrift) сервиса. + +## Объекты сервиса +В сервисе хранятся нижеперечисленные объекты. +### CurrencyObject +[Объект валюты.](objects/currencyObject.md) + +### CategoryObject +[Объект категорий магазинов.](objects/categoryObject.md) + +### PaymentMethodObject +[Объект предоставляемых способов оплаты.](objects/paymentMethodObject.md) + +### ContractTemplateObject +[Объект шаблонов контрактов, содержащих ссылку на условия.](objects/сontractTemplateObject.md) + +### TermSetHierarchyObject +[Объект иерархий условий.](objects/termSetHierarchyObject) + +### ProxyObject +[Объект, хранящий адреса и параметры сервисов-адаптеров.](objects/proxyObject.md) + +### ProviderObject +[Объект настроек и условий провайдера.](objects/providerObject) + + +### PayoutMethodObject +[Объект типов вывода (выводы на счета нерезидентов, выводы на кошельки мерчантов, вывод счет резидента) платежных средств.](objects/payoutMethodObject.md) + +### TerminalObject +[Объект с описанием терминалов.](objects/terminalObject.md) + +### PaymentInstitutionObject +[Объект платежных институтов.](objects/paymentInstitutionObject.md) + +### CalendarObject +[Объект календарей.](objects/calendarObject.md) + +### BusinessScheduleObject +[Объект видов расписаний.](objects/businessScheduleobject.md) + +### SystemAccountSetObject +[Объект типов счетов в системе.](objects/systemAccountSetObjec.md) + +### ExternalAccountSetObject +[Объект типов счетов для выплат.](objects/externalAccountSetObject.md) + +### InspectorObject +[Объект, описывающий провайдера антифрода.](objects/inspectorObject.md) + +### P2PInspectorObject +[Объект для настройки антифрода P2P.](objects/p2pInspectorObject.md) + +### GlobalsObject +[Аккаунты, используемые в проводках.](objects/globalsObject.md) + +## Связанные сервисы +* `Machinegun` +* `Hellgate` +* `Control-center` +* `Payouter` + +## Составители \ No newline at end of file diff --git a/content/docs/readme/dominant/objects/businessScheduleobject.md b/content/docs/readme/dominant/objects/businessScheduleobject.md new file mode 100644 index 0000000..76a3eac --- /dev/null +++ b/content/docs/readme/dominant/objects/businessScheduleobject.md @@ -0,0 +1,21 @@ +# BusinessScheduleObject + +Объект **BusinessScheduleObject** содержит данные о всех видах графиков, используемых для любых объектов. + +Объект содержит следующие поля: +* id - идентификатор вида графика; +* name - наименование вида графика; +* description - описание вида графика; +* schedule - расписание составления графика; +* delay - задержка составления графика; +* policy - задержка составления графика . + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +|id | name | description | shedule | delay | policy | +|:---|:---|:---|:---|:---|:---| +|9 | mon-sun on wen | object... | object... | object... | object...| +|...|...|...|...|...|...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. + diff --git a/content/docs/readme/dominant/objects/calendarObject.md b/content/docs/readme/dominant/objects/calendarObject.md new file mode 100644 index 0000000..2c02d41 --- /dev/null +++ b/content/docs/readme/dominant/objects/calendarObject.md @@ -0,0 +1,18 @@ +# CalendarObject + +Объект **CalendarObject** содержит данные производственного календаря. + +В объекте представлены следующие поля: +* id - идентификатор календаря; +* name - наименование календаря; +* timezone - часовой пояс; +* holidays - список выходных дней; +* first_day_of_week - указание первого дня недели . + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | timezone | holidays | first_day_of_week | +|:---|:---|:---|:---|:---| +|1|Производственный календарь РФ|object...|Europe/Moscow|object...|object...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. diff --git a/content/docs/readme/dominant/objects/categoryObject.md b/content/docs/readme/dominant/objects/categoryObject.md new file mode 100644 index 0000000..f58fa92 --- /dev/null +++ b/content/docs/readme/dominant/objects/categoryObject.md @@ -0,0 +1,17 @@ +# CategoryObject + +Объект **CategoryObject** хранит данные о роде деятельности мерчантов. +В объекте представлены следующие поля: +* id - mcc; +* name - полное наименование услуг, предоставляемых мерчантом; +* description - категория услуг; +* type - тип окружеия (0 - тестовое; 1 - продуктивное). + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | type | +|:---| :--- | :--- | :--- | +|100 | test | test | 1 | +| ... | ... | ... | ... | + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. diff --git a/content/docs/readme/dominant/objects/currencyObject.md b/content/docs/readme/dominant/objects/currencyObject.md new file mode 100644 index 0000000..bef253d --- /dev/null +++ b/content/docs/readme/dominant/objects/currencyObject.md @@ -0,0 +1,19 @@ +# Объект CurrencyObject + +Объект **CurrencyObject** хранит в себе список валют, доступных для проведения транзакций. В объекте представлены следующие поля: +* symbolic_code - международное сокращенное наименование валюты ; +* name - полное наименоваие валюты; +* symbolic_code - международное сокращенное наименование валюты; +* numeric - цифровой код валюты; +* exponent - количество знаков после запятой, используемое в расчетах. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| symbolic_code | name | symbolic_code | numeric_code | exponent | +| :--- | :--- | :--- | :--- | :--- | +| EUR | Евросоюзные евро | EUR | 978 | 2 | +| RUB | Российские рубли | RUB | 643 | 2 | +| ... | ... | ... | ... | ... | + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. + diff --git a/content/docs/readme/dominant/objects/externalAccountSetObject.md b/content/docs/readme/dominant/objects/externalAccountSetObject.md new file mode 100644 index 0000000..a67af3c --- /dev/null +++ b/content/docs/readme/dominant/objects/externalAccountSetObject.md @@ -0,0 +1,18 @@ +# ExternalAccountSetObject + +Объект **ExternalAccountSetObject** содержит данные о типах внешних счетов для выплат. + +В объекте представлены следующие поля: +* id - идентификатор счета; +* name - наименование счета; +* description - описание счета; +* accounts - номер счета. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | accounts | +|:---|:---|:---|:---| +|1 | Тестовые счета для зачислений | Тестовые счета для зачислений | object... | +|...|...|...|...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. \ No newline at end of file diff --git a/content/docs/readme/dominant/objects/globalsObject.md b/content/docs/readme/dominant/objects/globalsObject.md new file mode 100644 index 0000000..fa29310 --- /dev/null +++ b/content/docs/readme/dominant/objects/globalsObject.md @@ -0,0 +1,18 @@ +# GlobalsObject + + + +Объект **GlobalsObject** содержит данные об аккаунтах, используемых в проводках. + +Информация представлена в виде интерактивной таблицы, в которой указаны: +* external_account_set - ссылка на ExternalAccountSetObject; +* payment_institutions - ссылка на PaymentInstitutionObject; +* contract_payment_institution_defaults - системные аккаунты. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| external_account_set | payment_institutions | contract_payment_institution_defaults | +|:---|:---|:---| +|object...| object...|object...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. \ No newline at end of file diff --git a/content/docs/readme/dominant/objects/inspectorObject.md b/content/docs/readme/dominant/objects/inspectorObject.md new file mode 100644 index 0000000..37bcdf1 --- /dev/null +++ b/content/docs/readme/dominant/objects/inspectorObject.md @@ -0,0 +1,22 @@ +# InspectorObject + +Объект **InspectorObject** содержит данные, отвечающие за выбор антифрода. + +В объекте представлены следующие поля: +* id - идентификатор правила выбора степени риска; +* name - наименование антифрода; +* description - описание правила; +* proxy - ссылка на объект `ProxyObject`; +* fallback_risk_score - рейтинг антифрода, используемый при некорректной работе объекта. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | proxy | fallback_risk_score | +|:---|:---|:---|:---|:---| +|1 | Kovalsky | Всем платежам низкий риск за мой счёт | object... | object... | +|...|...|...|...|...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. + +## Перечень объектов, на которые ссылается `InspectorObject` +- ProxyObject \ No newline at end of file diff --git a/content/docs/readme/dominant/objects/p2pInspectorObject.md b/content/docs/readme/dominant/objects/p2pInspectorObject.md new file mode 100644 index 0000000..24e2c66 --- /dev/null +++ b/content/docs/readme/dominant/objects/p2pInspectorObject.md @@ -0,0 +1,20 @@ +# P2PInspectorObject + +Объект **P2PInspectorObject** содержит данные, отвечающие за выбор антифрода P2P. +В объекте представлены следующие поля: +* id - идентификатор правила выбора степени риска; +* name - наименование антифрода; +* description - описание правила; +* proxy - ссылка на объект `ProxyObject`; +* fallback_risk_score - рейтинг антифрода, используемый при некорректной работе объекта. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | proxy | fallback_risk_score | +|:---|:---|:---|:---|:---| +|1 | Fraudbusters-p2p | No | object... | object... | + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. + +## Перечень объектов, на которые ссылается `P2PInspectorObject` +- ProxyObject diff --git a/content/docs/readme/dominant/objects/paymentInstitutionObject.md b/content/docs/readme/dominant/objects/paymentInstitutionObject.md new file mode 100644 index 0000000..7abd49e --- /dev/null +++ b/content/docs/readme/dominant/objects/paymentInstitutionObject.md @@ -0,0 +1,45 @@ +# PaymentInstitutionObject + +Объекте **PaymentInstitutionObject** содержит данные о платежных институтах. Объект служит для настройки роутинга выплат и выбора провайдера по условиям. Можно создать комбинацию из нескольких условий (И, ИЛИ, НЕ, последовательность условий) по следующим критериям: +1. параметры карты, на которую идет выплата: + - страна банка-эмитента карты; + - название банка-эмитента; + - платежная система; +2. сумма текущей выплаты; +3. названию мерчанта. + +В объекте представлены следующе поля: +* id - идентификатор; +* name - наименование института; +* description - описание института; +* calendar - ссылка на объект `CalendarObject`, в котором содержится производственный календарь; +* system_account_set - номер счета системы; +* default_contract_template - ссылка на объект `ContractTemplateObject` и его дефолтное значение; +* default_wallet_contract_template - ссылка на идентификатор дефолтного контракта для кошелька; +* inspector - указание используемого антифрода (внутренний или внешний); +* realm - тип окружеия (0 - тестовое; 1 - продуктивное); +* residences - код страны института; +* wallet_system_account_set - системный счёт кошелька для выплат; +* identity - уровень идентификации системы; +* p2p_inspector - ссылка на `InspectorObject`; +* payment_routing - идентификатор используемого роутинга; +* withdrawal_providers - провайдеры для выплат; +* p2p_providers - провайдеры для p2p платежей; +* withdrawal_providers_legacy - список устаревших провайдеров; +* p2p_providers_legacy - список устаревших провайдеров p2p; +* providers - список провайдеров. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | calendar | system_account_set | default_contract_template | inspector | realm | residences | wallet_system_account_set | identity | p2p_inspector | payment_routing | withdrawal_providers | p2p_providers | withdrawal_providers_legacy | p2p_providers_legacy | providers| +|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---| +|100|НКО «ЭПС»|Платёжная организация, обслуживающая переводы и выплаты в рублях на расчётные счета юридических лиц, резидентов РФ, в российских банках|object...|object...|object...|object...|object...|1|object...|object...|object...|object...|object...|object...|object...|object...|object...| +|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...|...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. + +## Перечень объектов, на которые ссылается `PaymentInstitutionObject` +- InspectorObject +- ProviderObject +- WithdrawalProviderObject +- P2PProviderObject diff --git a/content/docs/readme/dominant/objects/paymentMethodObject.md b/content/docs/readme/dominant/objects/paymentMethodObject.md new file mode 100644 index 0000000..dbbb7c8 --- /dev/null +++ b/content/docs/readme/dominant/objects/paymentMethodObject.md @@ -0,0 +1,14 @@ +# PaymentMethodObject +Объект **PaymentMethodObject** содержит данные о видах платежных инструментов и их настройках. В объекте представлены следующие поля: +* id - наименование платежного инструмента; +* name - наименование платежного инструмента внутри платформы; +* description - описание платежного инструмента. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | +|:---| :--- | :--- | +|object | maestro NoCVV | maestro NoCVV | +| ... | ... | ... | + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. \ No newline at end of file diff --git a/content/docs/readme/dominant/objects/payoutMethodObject.md b/content/docs/readme/dominant/objects/payoutMethodObject.md new file mode 100644 index 0000000..2cacc70 --- /dev/null +++ b/content/docs/readme/dominant/objects/payoutMethodObject.md @@ -0,0 +1,17 @@ +# PayoutMethodObject + +Объект **PayoutMethodObject** содержит данные о типе вывода платежных средств мерчанта (например, выводы на счета нерезидентов, выводы на кошельки мерчантов, вывод на счет резидента). +В объекте представлены: +* id - идентификатор типа вывода средств; +* name - наименование типа вывода средств; +* description - описание типа вывода средств. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, ппредставленной ниже. + +| id | name | description | +|:---|:--- | :--- | +|1|International bank account|Выводы на счета нерезидентов| +|0|Russian bank account|Вывод счет резидента| +|2|Wallet info|Выводы на кошельки мерчантов| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. \ No newline at end of file diff --git a/content/docs/readme/dominant/objects/providerObject.md b/content/docs/readme/dominant/objects/providerObject.md new file mode 100644 index 0000000..d0e4965 --- /dev/null +++ b/content/docs/readme/dominant/objects/providerObject.md @@ -0,0 +1,32 @@ +# ProviderObject + +Объект **ProviderObject** содержит данные о настройках и условиях провайдера. Объект отвечает за формирование списка доступных провайдеров. +В объекте представлены следующие поля: +* id - идентификатор правила настроек; +* name - наименование правила; +* description - описание правила; +* proxy - ссылка на идентификатор прокси- сервера из объекта `ProxyObject`; +* identity - уровень идентификации провайдера ; +* accounts - номер счета провайдера в системе; +* terms - условия, применимые к провайдеру; +* params_schema - параметры передачи данных для адаптера; +* abs_account - номер счета абс ; +* payment_terms - условия для платежа; +* recurrent_paytool_terms - условия для рекуррентных платежей; +* terminal - условия по выбору терминала. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, ппредставленной ниже. + +| id | name | description | proxy | identity | accounts | terms | params_schema | abs_account | payment_terms | recurrent_paytool_terms | terminal| +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | +|1001|Test CHANGE|Test desc|object...|object...|object...|object...|object...|123|object...|object...|object...| +|...|...|...|...|...|...|...|...|...|...|...|...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. + +## Перечень объектов, на которые ссылается `ProviderObject` +- ProxyObject +- TerminalObject +- CurrencyObject +- CategoryObject +- PaymentMethodObject \ No newline at end of file diff --git a/content/docs/readme/dominant/objects/proxyObject.md b/content/docs/readme/dominant/objects/proxyObject.md new file mode 100644 index 0000000..f9dc243 --- /dev/null +++ b/content/docs/readme/dominant/objects/proxyObject.md @@ -0,0 +1,19 @@ +# ProxyObject + +Объект **ProxyObject** содержит данные для адаптеров прокси URL сервиса, используемого в системе. + +В объекте представлены следующие поля: +* id - идентификатор правила для сервиса; +* name - наименование прокси для адаптера; +* description - описание сервиса; +* url - ссылка на сервис; +* options - список настроек для подключения к сервису. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | url | options | +| :--- | :--- | :--- | :--- | :--- | +| 135 | WinPay | WinPay proxy | http://address | object... | +| ... | ... | ... | ... | ... | + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. diff --git a/content/docs/readme/dominant/objects/systemAccountSetObjec.md b/content/docs/readme/dominant/objects/systemAccountSetObjec.md new file mode 100644 index 0000000..787899b --- /dev/null +++ b/content/docs/readme/dominant/objects/systemAccountSetObjec.md @@ -0,0 +1,17 @@ +# SystemAccountSetObject + +Объект **SystemAccountSetObject** содержит данные о типах счетов в системе. +В объекте представлены следующие поля: +* id - идентификатор счета; +* name - наименование счета; +* description - описание счета; +* accounts - номер счета. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | accounts | +|:---|:---|:---|:---| +|1 | Тестовые счёта системы | Счёта для учёта тестовых платежей в системе | object...| +|...|...|...|...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. diff --git a/content/docs/readme/dominant/objects/termSetHierarchyObject.md b/content/docs/readme/dominant/objects/termSetHierarchyObject.md new file mode 100644 index 0000000..3aa9bca --- /dev/null +++ b/content/docs/readme/dominant/objects/termSetHierarchyObject.md @@ -0,0 +1,23 @@ +# TermSetHierarchyObject + +Объект **TermSetHierarchyObject** содержит данные о родительских условиях (`parent_terms`) и собственных условиях (`terms`). +В объекте представлены следующие поля: +* id - номер условия; +* name - наименование условия; +* description - описание условия; +* parent_terms - идентификатор родительских условий; +* term_sets - условия, дополняющие или изменяющие родительские. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | parent_terms | term_sets | +| :--- | :--- | :--- | :--- | :--- | +|1719 | Baseline 3.95% | object... | object... | object... | +| ... | ... | ... | ... | ... | + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. + +## Перечень объектов, на которые ссылается `TermSetHierarchyObject` +- PaymentMethodObject +- CategoryObject +- CurrencyObject \ No newline at end of file diff --git a/content/docs/readme/dominant/objects/terminalObject.md b/content/docs/readme/dominant/objects/terminalObject.md new file mode 100644 index 0000000..2b846bf --- /dev/null +++ b/content/docs/readme/dominant/objects/terminalObject.md @@ -0,0 +1,24 @@ +# TerminalObject + +Объект **TerminalObject** содержит список доступных терминалов . +В объекте представлены следующие поля: +* id - идентификатор терминала; +* name - наименование идентификатора; +* description - описание; +* option - параметры для адаптера, которые уточняют параметры заданные на уровне провайдера и прокси; +* risk_coverage - рисковое покрытие; +* provider_ref - идентификатор провайдера (к какому провайдеру относится терминал); +* terms - дополнение и корректировка условий, заданных на уровне провайдера; +* external_terminal_id - внешний идентификатор терминала (присваивается на стороне банка); +* external_merchant_id - внешний идентификатор мерчанта (присваивается на стороне банка); +* mcc - код категории мерчанта; +* terms_legacy - устаревшие условия . + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, ппредставленной ниже. + +| id | name | description | option | risk_coverage | provider_ref | terms | external_terminal_id | external_merchant_id | mcc | terms_legacy | +|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---| +|1899|PSB/ 5732/ 29068540|PSB/ ELECTRONICS STORES|object...|100|object...|object...|29068540|000573229068540|object...|object...| +|...|...|...|...|...|...|...|...|...|...|...| + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. diff --git "a/content/docs/readme/dominant/objects/\321\201ontractTemplateObject.md" "b/content/docs/readme/dominant/objects/\321\201ontractTemplateObject.md" new file mode 100644 index 0000000..2ea7f85 --- /dev/null +++ "b/content/docs/readme/dominant/objects/\321\201ontractTemplateObject.md" @@ -0,0 +1,27 @@ +# ContractTemplateObject + +Объект **ContractTemplateObject** содержит в себе ссылки на данные о предсозданных наборах условий (далее - контрактах) для их прикрепления к магазину мерчанта. + +*ВАЖНО*: при выборе контракта, он может ссылаться на другие (заранее подготовленные, родительские) контракты. + +В объекте представлены следующие поля: +* id - номер контракта; +* name - наименование контракта; +* description - описание контракта; +* valid_since - указание даты и времени начала действия контракта; +* valid_until - указание даты и времени окончания действия контракта; +* terms - идентификатор контракта, на который происходит ссылка. + +Данные полей можно визуализировать в виде таблицы, используемой в *Control center*, представленной ниже. + +| id | name | description | valid_since | valid_until | terms | +| :--- | :--- | :--- | :--- | :--- | :--- | +| 12 | Набор условий для тестового контракта СТАВКА 2.0% | object... | object... | object... | object... | +| ... | ... | ... | ... | ... | ... | + +При нажатии на строку, раскрывается форма редактирования полей, отображаемых в таблице. + +При раскрытии пункта `terms` возможно посмотреть параметры родительского контракта `parent_terms` и при необходимости добавить необходимые условия в пункте `term_sets`. + +## Перечень объектов, на которые ссылается `ContractTemplateObject` +- TermSetHierarchyObject \ No newline at end of file diff --git a/content/docs/readme/hellgate/pic/ent1.jpg b/content/docs/readme/hellgate/pic/ent1.jpg new file mode 100644 index 0000000..19c3a40 Binary files /dev/null and b/content/docs/readme/hellgate/pic/ent1.jpg differ diff --git a/content/docs/readme/hellgate/readme.md b/content/docs/readme/hellgate/readme.md new file mode 100644 index 0000000..cb03848 --- /dev/null +++ b/content/docs/readme/hellgate/readme.md @@ -0,0 +1,76 @@ +# Hellgate + + + +## Содержание +- [Общее описание](#Общее-описание) +- [Структура сервиса](#Структура-сервиса) + - [Party management](#Party-management) + - [Бизнес-логика проведения платежей](#Бизнес-логика-проведения-платежей) +- [Связанные сервисы](#Связанные-сервисы) +- [Составители](#Составители) + + +## Общее описание + +**Hellgate (Payments Processing Core Service)** - сервис, отвечающий за: +1. Party management (управление участниками); +2. обслуживание бизнес-логики платежей; +3. обслуживание связок платежный инструмент - плательщик. + +## Структура сервиса + +**Hellgate** состоит из трех модулей: +1. Party management. Включает в себя управление: + - магазинами; + - участниками. +2. Бизнес-логика проведения платежей. Включает в себя управление: + - инвойсами; + - платежами; + - контрактами. +3. Обслуживание связок платежный инструмент - плательщик. Включает в себя управление платежным инструментом, плательщиком и их взаимодействием в рамках рекуррентных платежей. + +### Party management + +В модуле *Party management* возможно: +- создание и удаление *party*. *Party* - сущность, представляющая мерчанта в платформе; +- блокировка и разблокировка *party*; +- активация *party*; +- управление кошельками (блокировка и активация) по *party* кошелька; +- создание сущности *Contract*; +- создание сущности *Shop*. +Идентификация *party* происходит по уникальному id, присваиваемому при создании *party*. + +Зависимость основных сущностей *Party* представлена ниже. + +![Диаграмма1](pic/ent1.jpg) + +### Бизнес-логика проведения платежей + +В модуле бизнес-логики проведения платежей **Hellgate** может производить мониторинг состояний: +* инвойсов и платежей; +* возвратов платежей; +* возмещений мерчантам. + +### Обслуживание связок платежное средство - плательщик + +В модуле обслуживания связок платежное средство - плательщик возможно: +- создание плательщика; +- удаление плательщика; +- получение уведомлений о событиях плательщика; +- создание платежного инструмента; +- удаление платежного инструмента; +- создание связки плательщик - платежный инструмент. + +## Связанные сервисы +* `Machinegun` +* `Dominant` +* `Shumway` +* `Fault-detector` +* `Fraudbusters` +* `CAPI` +* `Hooker` +* `Magista-kafka` + + +## Составители \ No newline at end of file diff --git a/content/docs/readme/machinegun/mg_example_of_work.md b/content/docs/readme/machinegun/mg_example_of_work.md new file mode 100644 index 0000000..9b378a7 --- /dev/null +++ b/content/docs/readme/machinegun/mg_example_of_work.md @@ -0,0 +1,10 @@ +# Пример функционирования Machinegun + +Пример функционирования сервиса `Machinegun` описан по шагам в связке с сервисами [`Bender`](../Bender/bender_readme.md). + +1. От `capi` в [сервис `bender`](https://github.com/rbkmoney/bender-proto/blob/0d5813b8a25c8d03e4e59e42aa5f4e9b785a3849/proto%2Fbender.thrift#L47-L53) приходит запрос для создания нового уникального id на основе внешнего идентификатора `external-id`. +2. `bender` обращается в [`machinegun`](https://github.com/rbkmoney/machinegun_proto/blob/eac772bb8446fcd2f439232bf10fa086c336aca6/proto%2Fstate_processing.thrift#L416) для запуска автомата, который будет управлять хранением связки `external-id` -> `id`. +3. `machinegun` обращается в [специальный интерфейс `bender`](https://github.com/rbkmoney/machinegun_proto/blob/eac772bb8446fcd2f439232bf10fa086c336aca6/proto%2Fstate_processing.thrift#L322) для обработки специфической логики, связанной с хранением пары идентификаторов. +4. `bender` отвечает `machinegun`, что создание такого автомата допустимо, и что более ничего делать с этим автоматом не нужно. +5. `machinegun` отвечает `bender`, что автомат был создан успешно. +6. `bender` возвращает `capi` получившийся идентификатор. diff --git a/content/docs/readme/machinegun/readme.md b/content/docs/readme/machinegun/readme.md new file mode 100644 index 0000000..d650e0b --- /dev/null +++ b/content/docs/readme/machinegun/readme.md @@ -0,0 +1,31 @@ +# Machinegun + + + +## Содержание +- [Общее описание](#Общее-описание) +- [Принцип работы сервиса](#Принцип-работы-сервиса) +- [Связанные сервисы](#Связанные-сервисы) +- [Составители](#Составители) + +## Общее описание + +**Machinegun (Machinegun FSM processor)** - сервис, отвечающий за хранение состояний сервисов, участвующих в бизнес-процессе, репликацию потоков их событий в бек-офис через универсальный брокер Kafka. Представляет из себя распределенное хранилище данных, которое хранит и предоставляет доступ к событиям платформы. + +## Принцип работы сервиса + +При проведении платежа `Machinegun` инициирует у [сервисов, указанных ниже](#Связанные-сервисы) выполнение очередного шага платежа. +Сообщения о состояниях транзакций хранятся в риаке. + +### Пример функционирования сервиса +Пример функционирования сервиса представлен в документе "[Пример функционирования Machinegun](mg_example_of_work.md)". + +## Связанные сервисы + +* `Shortener` +* `Bender` +* `Hellgate` +* `Dominant` +* `Payouter` + +## Составители diff --git a/mkdocs.yml b/mkdocs.yml index 5730234..5872d06 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -69,3 +69,10 @@ nav: - 'Выплаты на карты': 'docs/wallets/card-payouts/index.md' - 'Справочники': - 'Тестовые карты': 'docs/payments/refs/testcards.md' + - 'Readme микросервисов': + - 'Bender': 'docs/readme/Bender/readme.md' + - 'Dominant': 'docs/readme/dominant/dominant_readme.md' + - 'Shumway': 'docs/readme/Shumway/readme.md' + - 'Hellgate': 'docs/readme/hellgate/readme.md' + - 'Hooker': 'docs/readme/Hooker/Hooker_Readme.md' + - 'Machinegun': 'docs/readme/machinegun/readme.md'