mirror of
https://github.com/valitydev/swag-wallets.git
synced 2024-11-06 10:55:21 +00:00
FF-107: Webhooks (#45)
* added webhooks * changed webhook api ref * added identityID to webhook functions * minor * fixed * refixed * fixed
This commit is contained in:
parent
efdbc22ed2
commit
118693fe2a
18
api/wallet/spec/definitions/DestinationsTopic.yaml
Normal file
18
api/wallet/spec/definitions/DestinationsTopic.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
description: |
|
||||||
|
Область охвата, включающая события по приёмникам денежных средств
|
||||||
|
в рамках определённого кошелька
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/WebhookScope'
|
||||||
|
- type: object
|
||||||
|
required:
|
||||||
|
- eventTypes
|
||||||
|
properties:
|
||||||
|
eventTypes:
|
||||||
|
description: Набор типов событий приёмника денежных средств, о которых следует оповещать
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- DestinationCreated
|
||||||
|
- DestinationUnauthorized
|
||||||
|
- DestinationAuthorized
|
38
api/wallet/spec/definitions/Webhook.yaml
Normal file
38
api/wallet/spec/definitions/Webhook.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- identityID
|
||||||
|
- scope
|
||||||
|
- url
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
description: |
|
||||||
|
Идентификатор webhook'а
|
||||||
|
type: string
|
||||||
|
readOnly: true
|
||||||
|
identityID:
|
||||||
|
x-rebillyMerge:
|
||||||
|
- $ref: '#/definitions/IdentityID'
|
||||||
|
active:
|
||||||
|
description: |
|
||||||
|
Включена ли в данный момент доставка оповещений?
|
||||||
|
type: boolean
|
||||||
|
readOnly: true
|
||||||
|
scope:
|
||||||
|
$ref: '#/definitions/WebhookScope'
|
||||||
|
url:
|
||||||
|
description: |
|
||||||
|
URL, на который будут поступать оповещения о произошедших событиях
|
||||||
|
type: string
|
||||||
|
format: uri
|
||||||
|
maxLength: 1000
|
||||||
|
publicKey:
|
||||||
|
description: |
|
||||||
|
Содержимое публичного ключа, служащего для проверки авторитативности
|
||||||
|
приходящих на `url` оповещений
|
||||||
|
type: string
|
||||||
|
format: hexadecimal
|
||||||
|
readOnly: true
|
||||||
|
example: "\
|
||||||
|
MIGJAoGBAM1fmNUvezts3yglTdhXuqG7OhHxQtDFA+Ss//YuUGjw5ossDbEMoS+S\
|
||||||
|
IFuYZ/UL9Xg0rEHNRSbmf48OK+mz0FobEtbji8MADayzGfFopXsfRFa7MVy3Uhu5\
|
||||||
|
jBDpLsN3DyJapAkK0TAYINlZXxVjDwxRNheTvC+xub5WNdiwc28fAgMBAAE="
|
14
api/wallet/spec/definitions/WebhookScope.yaml
Normal file
14
api/wallet/spec/definitions/WebhookScope.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
description: |
|
||||||
|
Область охвата webhook'а, ограничивающая набор типов событий, по которым
|
||||||
|
следует отправлять оповещения
|
||||||
|
type: object
|
||||||
|
discriminator: topic
|
||||||
|
required:
|
||||||
|
- topic
|
||||||
|
properties:
|
||||||
|
topic:
|
||||||
|
description: Предмет оповещений
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- WithdrawalsTopic
|
||||||
|
- DestinationsTopic
|
20
api/wallet/spec/definitions/WithdrawalsTopic.yaml
Normal file
20
api/wallet/spec/definitions/WithdrawalsTopic.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
description: |
|
||||||
|
Область охвата, включающая события по выплатам в рамках определённого кошелька
|
||||||
|
allOf:
|
||||||
|
- $ref: '#/definitions/WebhookScope'
|
||||||
|
- type: object
|
||||||
|
required:
|
||||||
|
- eventTypes
|
||||||
|
properties:
|
||||||
|
walletID:
|
||||||
|
x-rebillyMerge:
|
||||||
|
- $ref: '#/definitions/WalletID'
|
||||||
|
eventTypes:
|
||||||
|
description: Набор типов событий выплаты, о которых следует оповещать
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- WithdrawalStarted
|
||||||
|
- WithdrawalSucceeded
|
||||||
|
- WithdrawalFailed
|
44
api/wallet/spec/paths/webhooks.yaml
Normal file
44
api/wallet/spec/paths/webhooks.yaml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
post:
|
||||||
|
description: Установить новый webhook.
|
||||||
|
tags:
|
||||||
|
- Webhooks
|
||||||
|
operationId: createWebhook
|
||||||
|
parameters:
|
||||||
|
- $ref: '#/parameters/requestID'
|
||||||
|
- $ref: '#/parameters/deadline'
|
||||||
|
- name: webhookParams
|
||||||
|
description: Параметры устанавливаемого webhook'а
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/Webhook'
|
||||||
|
responses:
|
||||||
|
'201':
|
||||||
|
description: Webhook установлен
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/Webhook'
|
||||||
|
'400':
|
||||||
|
$ref: '#/responses/BadRequest'
|
||||||
|
'401':
|
||||||
|
$ref: '#/responses/Unauthorized'
|
||||||
|
|
||||||
|
get:
|
||||||
|
description: Получить набор установленных webhook'ов.
|
||||||
|
tags:
|
||||||
|
- Webhooks
|
||||||
|
operationId: getWebhooks
|
||||||
|
parameters:
|
||||||
|
- $ref: '#/parameters/requestID'
|
||||||
|
- $ref: '#/parameters/deadline'
|
||||||
|
- $ref: '#/parameters/queryIdentityID'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Набор webhook'ов
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/Webhook'
|
||||||
|
'400':
|
||||||
|
$ref: '#/responses/BadRequest'
|
||||||
|
'401':
|
||||||
|
$ref: '#/responses/Unauthorized'
|
41
api/wallet/spec/paths/webhooks@{webhookID}.yaml
Normal file
41
api/wallet/spec/paths/webhooks@{webhookID}.yaml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
get:
|
||||||
|
description: Получить webhook по его идентификатору.
|
||||||
|
tags:
|
||||||
|
- Webhooks
|
||||||
|
operationId: getWebhookByID
|
||||||
|
parameters:
|
||||||
|
- $ref: '#/parameters/requestID'
|
||||||
|
- $ref: '#/parameters/deadline'
|
||||||
|
- $ref: '#/parameters/webhookID'
|
||||||
|
- $ref: '#/parameters/queryIdentityID'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Данные webhook'а
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/Webhook'
|
||||||
|
'400':
|
||||||
|
$ref: '#/responses/BadRequest'
|
||||||
|
'401':
|
||||||
|
$ref: '#/responses/Unauthorized'
|
||||||
|
'404':
|
||||||
|
$ref: '#/responses/NotFound'
|
||||||
|
|
||||||
|
delete:
|
||||||
|
description: Снять указанный webhook.
|
||||||
|
tags:
|
||||||
|
- Webhooks
|
||||||
|
operationId: deleteWebhookByID
|
||||||
|
parameters:
|
||||||
|
- $ref: '#/parameters/requestID'
|
||||||
|
- $ref: '#/parameters/deadline'
|
||||||
|
- $ref: '#/parameters/webhookID'
|
||||||
|
- $ref: '#/parameters/queryIdentityID'
|
||||||
|
responses:
|
||||||
|
'204':
|
||||||
|
description: Webhook успешно снят
|
||||||
|
'400':
|
||||||
|
$ref: '#/responses/BadRequest'
|
||||||
|
'401':
|
||||||
|
$ref: '#/responses/Unauthorized'
|
||||||
|
'404':
|
||||||
|
$ref: '#/responses/NotFound'
|
@ -287,6 +287,24 @@ parameters:
|
|||||||
maxLength: 40
|
maxLength: 40
|
||||||
minLength: 1
|
minLength: 1
|
||||||
|
|
||||||
|
webhookID:
|
||||||
|
name: webhookID
|
||||||
|
in: path
|
||||||
|
description: Идентификатор webhook'а
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
maxLength: 40
|
||||||
|
minLength: 1
|
||||||
|
|
||||||
|
queryIdentityID:
|
||||||
|
name: identityID
|
||||||
|
in: query
|
||||||
|
description: Идентификатор личности владельца
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
maxLength: 40
|
||||||
|
minLength: 1
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
|
|
||||||
- name: Providers
|
- name: Providers
|
||||||
@ -324,3 +342,22 @@ tags:
|
|||||||
- name: Downloads
|
- name: Downloads
|
||||||
x-displayName: Загрузка файлов
|
x-displayName: Загрузка файлов
|
||||||
description: ""
|
description: ""
|
||||||
|
|
||||||
|
- name: Webhooks
|
||||||
|
x-displayName: Webhooks
|
||||||
|
description: >
|
||||||
|
## RBKmoney Webhooks Management API
|
||||||
|
|
||||||
|
В данном разделе описаны методы, позволяющие управлять Webhook'ами, или
|
||||||
|
инструментами для получения асинхронных оповещений посредством
|
||||||
|
HTTP-запросов при наступлении одного или группы интересующих вас событий,
|
||||||
|
например, о том, что выплата в рамках созданного кошелька была успешно
|
||||||
|
проведена.
|
||||||
|
|
||||||
|
## RBKmoney Webhooks Events API
|
||||||
|
|
||||||
|
Внимание! Только Webhooks Management API является частью платформы
|
||||||
|
RBKmoney, а следовательно и данной спецификации. Для реализации
|
||||||
|
обработчика присылаемых уведомлений вам необходимо будет ознакомиться со
|
||||||
|
Swagger-спецификацей [RBKmoney Wallet Webhooks Events
|
||||||
|
API](https://rbkmoney.github.io/wallet-webhook-events-api/).
|
||||||
|
Loading…
Reference in New Issue
Block a user