mirror of
https://github.com/valitydev/swag-wallets.git
synced 2024-11-06 02:45:19 +00:00
parent
b8b19e1d82
commit
da5112091b
23
.github/workflows/build.yaml
vendored
Normal file
23
.github/workflows/build.yaml
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
name: build
|
||||
on:
|
||||
- pull_request
|
||||
|
||||
env:
|
||||
NODEJS_VERSION: '16'
|
||||
|
||||
jobs:
|
||||
bundle:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ env.NODEJS_VERSION }}
|
||||
cache: npm
|
||||
- run: npm install
|
||||
- name: Bundle specification
|
||||
run: npm run build
|
||||
- name: Validate specification
|
||||
run: npm run test
|
28
.github/workflows/gh-pages.yaml
vendored
Normal file
28
.github/workflows/gh-pages.yaml
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
name: gh-pages
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
env:
|
||||
NODEJS_VERSION: '16'
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ env.NODEJS_VERSION }}
|
||||
cache: npm
|
||||
- run: npm install
|
||||
- name: Bundle specification
|
||||
run: npm run build
|
||||
- name: Publish ReDoc on Github Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./dist
|
||||
exclude_assets: 'swagger-ui'
|
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,6 +1,6 @@
|
||||
# Dir for API portal deploy
|
||||
dist
|
||||
out
|
||||
dist/
|
||||
out/
|
||||
|
||||
# Logs
|
||||
logs
|
||||
@ -35,6 +35,3 @@ node_modules
|
||||
|
||||
# CI
|
||||
.wercker
|
||||
|
||||
# Generated
|
||||
web_deploy/
|
||||
|
@ -1,10 +1 @@
|
||||
# Wallet API Specification
|
||||
|
||||
## TODO
|
||||
|
||||
* Надо бы ввести identity service terms.
|
||||
* Кажется всё-таки, что identity classes и identity levels на одном уровне иерархии.
|
||||
* Можно попробовать identity classes и levels совместить во что-то одно (типа badges) и позволять набивать их в identity в произвольном количестве.
|
||||
* Вообще, withdrawal может включать и user interaction.
|
||||
* Ресурсы _currencies_ и _residences_ выглядят как достаточно универсальные, чтобы их вынести в отдельную спеку.
|
||||
* Пропатчить _swagger-repo_ так, чтобы _swagger-editor_ корректно работал с репозиториями, в которых больше одной спеки.
|
||||
|
@ -1,7 +1,7 @@
|
||||
type: object
|
||||
properties:
|
||||
authData:
|
||||
description: Данные для авторизации операции по карте
|
||||
description: Данные для авторизации платежа по карте
|
||||
type: string
|
||||
minLength: 1
|
||||
maxLength: 1000
|
||||
|
@ -1,19 +1,11 @@
|
||||
description: Платёжная система
|
||||
description: Платежная система
|
||||
type: string
|
||||
enum:
|
||||
- visa
|
||||
- mastercard
|
||||
- visaelectron
|
||||
- maestro
|
||||
- forbrugsforeningen
|
||||
- dankort
|
||||
- amex
|
||||
- dinersclub
|
||||
- discover
|
||||
- unionpay
|
||||
- jcb
|
||||
- nspkmir
|
||||
- elo
|
||||
- rupay
|
||||
- dummy
|
||||
- uzcard
|
||||
# enum:
|
||||
# - visa
|
||||
# - mastercard
|
||||
# - amex
|
||||
# - dinersclub
|
||||
# - discover
|
||||
# - unionpay
|
||||
# - jcb
|
||||
# - nspkmir
|
||||
|
@ -2,4 +2,3 @@ type: object
|
||||
allOf:
|
||||
- $ref: '#/definitions/SecuredBankCard'
|
||||
- $ref: '#/definitions/AuthData'
|
||||
- $ref: '#/definitions/ValidUntil'
|
||||
|
@ -1,20 +1,17 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
version: '0.0.1'
|
||||
title: RBKmoney Payment Resource API
|
||||
version: '0.1.0'
|
||||
title: Vality Payment Resource API
|
||||
description: >
|
||||
|
||||
Платформа предоставляет возможность токенизации исходных данных пользовательских платёжных ресурсов.
|
||||
Используя RBKmoney Payment Resource API вы можете для своего платёжного ресурса получить уникальный токен,
|
||||
который может быть использован для переводов.
|
||||
Vality Payment Resource API служит для токенизации чувствительных данных платёжных ресурсов пользователей.
|
||||
|
||||
|
||||
termsOfService: http://rbk.money/
|
||||
termsOfService: https://vality.dev/
|
||||
contact:
|
||||
name: RBKmoney support team
|
||||
email: support@rbk.money
|
||||
url: https://rbk.money
|
||||
host: api.rbk.money
|
||||
name: Команда техподдержки
|
||||
email: support@vality.dev
|
||||
url: https://vality.dev/
|
||||
host: api.vality.dev
|
||||
basePath: /payres/v0
|
||||
schemes:
|
||||
- https
|
||||
|
@ -1,12 +0,0 @@
|
||||
description: Исходные чувствительные данные персональные документа
|
||||
type: object
|
||||
discriminator: type
|
||||
required:
|
||||
- type
|
||||
properties:
|
||||
type:
|
||||
description: Вид документа
|
||||
type: string
|
||||
enum:
|
||||
- RUSDomesticPassportData
|
||||
- RUSRetireeInsuranceCertificateData
|
@ -1,20 +0,0 @@
|
||||
description: Открытые данные национального паспорта гражданина РФ
|
||||
allOf:
|
||||
- $ref: '#/definitions/SecuredPrivateDocument'
|
||||
- type: object
|
||||
properties:
|
||||
seriesMasked:
|
||||
description: Маскированная серия паспорта
|
||||
type: string
|
||||
example: "45**"
|
||||
readOnly: true
|
||||
numberMasked:
|
||||
description: Маскированный номер паспорта
|
||||
type: string
|
||||
example: "*****6"
|
||||
readOnly: true
|
||||
fullnameMasked:
|
||||
description: Маскированное полное имя гражданина
|
||||
type: string
|
||||
example: "И***** И.И."
|
||||
readOnly: true
|
@ -1,69 +0,0 @@
|
||||
description: Исходные данные национального паспорта гражданина РФ
|
||||
allOf:
|
||||
- $ref: '#/definitions/PrivateDocument'
|
||||
- type: object
|
||||
required:
|
||||
- series
|
||||
- number
|
||||
- issuer
|
||||
- issuerCode
|
||||
- issuedAt
|
||||
- familyName
|
||||
- firstName
|
||||
- birthDate
|
||||
- birthPlace
|
||||
properties:
|
||||
series:
|
||||
description: Серия паспорта
|
||||
type: string
|
||||
example: "4567"
|
||||
pattern: '^[0-9]{4}$'
|
||||
number:
|
||||
description: Номер паспорта
|
||||
type: string
|
||||
example: "123456"
|
||||
pattern: '^[0-9]{6}$'
|
||||
issuer:
|
||||
description: Наименование выдавшего паспорт органа
|
||||
type: string
|
||||
example: |
|
||||
Отделение УФМС России по Кемеровской области в Юргинском районе
|
||||
maxLength: 1000
|
||||
issuerCode:
|
||||
description: Код подразделения выдавшего паспорт органа
|
||||
type: string
|
||||
example: |
|
||||
666-777
|
||||
pattern: '^[0-9]{3}-[0-9]{3}$'
|
||||
issuedAt:
|
||||
description: Дата выдачи паспорта
|
||||
type: string
|
||||
format: date
|
||||
familyName:
|
||||
description: Фамилия гражданина
|
||||
type: string
|
||||
example: "Иванов"
|
||||
# pattern: "^[А-Яа-я'-]{1,100}$"
|
||||
maxLength: 100
|
||||
firstName:
|
||||
description: Имя гражданина
|
||||
type: string
|
||||
example: "Иван"
|
||||
# pattern: "^[А-Яа-я'-]{1,100}$"
|
||||
maxLength: 100
|
||||
patronymic:
|
||||
description: Отчество гражданина
|
||||
type: string
|
||||
example: "Иванович"
|
||||
# pattern: "^[А-Яа-я'-]{1,100}$"
|
||||
maxLength: 100
|
||||
birthDate:
|
||||
description: Дата рождения гражданина
|
||||
type: string
|
||||
format: date
|
||||
birthPlace:
|
||||
description: Место рождения гражданина
|
||||
type: string
|
||||
# pattern: "^[ .0-9А-Яа-я'-]{1,100}$"
|
||||
maxLength: 100
|
||||
example: "дер. Белянино"
|
@ -1,13 +0,0 @@
|
||||
description: |
|
||||
Открытые данные страхового свидетельства обязательного пенсионного страхования
|
||||
гражданина РФ
|
||||
allOf:
|
||||
- $ref: '#/definitions/SecuredPrivateDocument'
|
||||
- type: object
|
||||
properties:
|
||||
numberMasked:
|
||||
description: |
|
||||
Маскированный [СНИЛС](https://ru.wikipedia.org/wiki/Страховой_номер_индивидуального_лицевого_счёта)
|
||||
type: string
|
||||
example: "12*-***-*** *4"
|
||||
readOnly: true
|
@ -1,15 +0,0 @@
|
||||
description: |
|
||||
Исходные данные страхового свидетельства обязательного пенсионного страхования
|
||||
гражданина РФ
|
||||
allOf:
|
||||
- $ref: '#/definitions/PrivateDocument'
|
||||
- type: object
|
||||
required:
|
||||
- number
|
||||
properties:
|
||||
number:
|
||||
description: |
|
||||
[СНИЛС](https://ru.wikipedia.org/wiki/Страховой_номер_индивидуального_лицевого_счёта)
|
||||
type: string
|
||||
example: "123-456-789 64"
|
||||
pattern: "^[0-9]{3}-[0-9]{3}-[0-9]{3} [0-9]{2}$"
|
@ -1,15 +0,0 @@
|
||||
description: |
|
||||
Персональный документ, токенизированный с целью сокрытия чувствительных данных
|
||||
type: object
|
||||
discriminator: type
|
||||
required:
|
||||
- token
|
||||
properties:
|
||||
type:
|
||||
x-rebillyMerge:
|
||||
- $ref: '#/definitions/SecuredPrivateDocumentType'
|
||||
- readOnly: true
|
||||
token:
|
||||
description: Токен, уникально идентифицирующий исходные данные
|
||||
type: string
|
||||
example: 7kodCm5gr68ji4O11KpVn0
|
@ -1,5 +0,0 @@
|
||||
description: Тип документа
|
||||
type: string
|
||||
enum:
|
||||
- RUSDomesticPassport
|
||||
- RUSRetireeInsuranceCertificate
|
@ -1 +0,0 @@
|
||||
../../../../../spec/definitions/responses/BadRequest.yaml
|
@ -1,20 +0,0 @@
|
||||
post:
|
||||
operationId: storePrivateDocument
|
||||
summary: Сохранить персональный документ
|
||||
tags:
|
||||
- Private Documents
|
||||
parameters:
|
||||
- $ref: '#/parameters/requestID'
|
||||
- name: proof
|
||||
description: Данные документа
|
||||
in: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/PrivateDocument'
|
||||
responses:
|
||||
'201':
|
||||
description: Документ токенизирован
|
||||
schema:
|
||||
$ref: '#/definitions/SecuredPrivateDocument'
|
||||
'400':
|
||||
$ref: '#/responses/BadRequest'
|
@ -1,61 +0,0 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
version: '0.0.1'
|
||||
title: RBKmoney Private Document API
|
||||
description: >
|
||||
|
||||
RBKmoney Private Document API служит для токенизации чувствительных данных
|
||||
персональных документов пользователей.
|
||||
|
||||
termsOfService: http://rbk.money/
|
||||
contact:
|
||||
name: RBKmoney support team
|
||||
email: support@rbk.money
|
||||
url: https://rbk.money
|
||||
host: api.rbk.money
|
||||
basePath: /privdoc/v0
|
||||
schemes:
|
||||
- https
|
||||
consumes:
|
||||
- application/json; charset=utf-8
|
||||
produces:
|
||||
- application/json; charset=utf-8
|
||||
securityDefinitions:
|
||||
bearer:
|
||||
type: apiKey
|
||||
name: Authorization
|
||||
in: header
|
||||
description: >
|
||||
Для аутентификации вызовов мы используем [JWT](https://jwt.io).
|
||||
Cоответствующий ключ передается в заголовке.
|
||||
|
||||
```shell
|
||||
Authorization: Bearer {TOKENIZATION|PRIVATE_JWT}
|
||||
```
|
||||
|
||||
security:
|
||||
- bearer: []
|
||||
|
||||
responses:
|
||||
|
||||
BadRequest:
|
||||
description: Недопустимые для операции входные данные
|
||||
schema:
|
||||
$ref: '#/definitions/BadRequest'
|
||||
|
||||
parameters:
|
||||
|
||||
requestID:
|
||||
name: X-Request-ID
|
||||
in: header
|
||||
description: Уникальный идентификатор запроса к системе
|
||||
required: true
|
||||
type: string
|
||||
maxLength: 32
|
||||
minLength: 1
|
||||
|
||||
tags:
|
||||
|
||||
- name: Private Documents
|
||||
x-displayName: Персональные документы
|
||||
description: ""
|
@ -8,7 +8,7 @@ properties:
|
||||
description: |
|
||||
Тип ресурса приёмника средств.
|
||||
|
||||
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml).
|
||||
См. [Vality Payment Resource API](?api/payres/swagger.yaml).
|
||||
type: string
|
||||
enum:
|
||||
- BankCardDestinationResource
|
||||
|
@ -1,4 +1,4 @@
|
||||
description: Уникальный в рамках платформы идентификатор участника.
|
||||
description: Уникальный в рамках системы идентификатор участника.
|
||||
type: string
|
||||
minLength: 1
|
||||
maxLength: 40
|
||||
|
@ -12,7 +12,7 @@ properties:
|
||||
description: |
|
||||
Человекочитаемое наименование провайдера услуг
|
||||
type: string
|
||||
example: НКО «ЭПС»
|
||||
example: ООО «СЕРВИС ПРОВАЙДЕР»
|
||||
residences:
|
||||
type: array
|
||||
description: |
|
||||
|
@ -1,3 +1,3 @@
|
||||
description: Идентификатор провайдера услуг
|
||||
type: string
|
||||
example: ncoeps
|
||||
example: serviceprovider
|
||||
|
@ -8,7 +8,7 @@ properties:
|
||||
description: |
|
||||
Тип ресурса получателя средств.
|
||||
|
||||
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml).
|
||||
См. [Vality Payment Resource API](?api/payres/swagger.yaml).
|
||||
type: string
|
||||
enum:
|
||||
- BankCardReceiverResource
|
||||
|
@ -8,7 +8,7 @@ properties:
|
||||
description: |
|
||||
Тип ресурса получателя средств.
|
||||
|
||||
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml).
|
||||
См. [Vality Payment Resource API](?api/payres/swagger.yaml).
|
||||
type: string
|
||||
enum:
|
||||
- BankCardReceiverResourceParams
|
||||
|
@ -8,7 +8,7 @@ properties:
|
||||
description: |
|
||||
Тип ресурса отправителя средств.
|
||||
|
||||
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml).
|
||||
См. [Vality Payment Resource API](?api/payres/swagger.yaml).
|
||||
type: string
|
||||
enum:
|
||||
- BankCardSenderResource
|
||||
|
@ -8,7 +8,7 @@ properties:
|
||||
description: |
|
||||
Тип ресурса отправителя средств.
|
||||
|
||||
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml).
|
||||
См. [Vality Payment Resource API](?api/payres/swagger.yaml).
|
||||
type: string
|
||||
enum:
|
||||
- BankCardSenderResourceParams
|
||||
|
@ -1,24 +1,16 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
version: '0.0.1'
|
||||
title: RBKmoney Wallet API
|
||||
version: '0.1.0'
|
||||
title: Vality Wallet API
|
||||
description: >
|
||||
|
||||
RBKmoney Wallet API является базовой и единственной точкой взаимодействия с
|
||||
платформой кошельков. Все изменения состояний платформы осуществляются с
|
||||
помощью вызовов соответствующих методов API. Любые сторонние приложения,
|
||||
включая наши веб-сайты и другие UI-интерфейсы являются внешними
|
||||
приложениями-клиентами.
|
||||
Vality Wallet API является базовой и единственной точкой взаимодействия с системой кошельков. Все изменения состояний системы осуществляются с помощью вызовов соответствующих методов API. Любые сторонние приложения, включая наши веб-сайты и другие UI-интерфейсы, являются внешними приложениями-клиентами.
|
||||
|
||||
RBKmoney API работает поверх HTTP-протокола. Мы используем REST архитектуру,
|
||||
схема описывается в соответствии со [Swagger](http://swagger.io/). Коды
|
||||
возврата описываются соответствующими HTTP-статусами. Платформа принимает и
|
||||
возвращает значения JSON в теле запросов и ответов.
|
||||
Vality API работает поверх HTTP-протокола. Мы используем REST архитектуру, схема описывается в соответствии с [OpenAPI 2.0](https://spec.openapis.org/oas/v2.0). Коды возврата описываются соответствующими HTTP-статусами. Система принимает и возвращает значения JSON в теле запросов и ответов.
|
||||
|
||||
## Формат содержимого
|
||||
|
||||
Любой запрос к API должен выполняться в кодировке UTF-8 и с указанием
|
||||
содержимого в формате JSON.
|
||||
Любой запрос к API должен выполняться в кодировке UTF-8 и с указанием содержимого в формате JSON.
|
||||
|
||||
```
|
||||
Content-Type: application/json; charset=utf-8
|
||||
@ -26,7 +18,7 @@ info:
|
||||
|
||||
## Формат дат
|
||||
|
||||
Платформа принимает значения date-time в формате, описанном в RFC 3339, например:
|
||||
Система принимает и возвращает значения отметок времени в формате `date-time`, описанном в [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339):
|
||||
|
||||
```
|
||||
2017-01-01T00:00:00Z
|
||||
@ -35,43 +27,37 @@ info:
|
||||
|
||||
## Максимальное время обработки запроса
|
||||
|
||||
К любому вызову методов API можно добавить параметр отсечки по времени,
|
||||
определяющий максимальное время ожидания завершения операции по запросу.
|
||||
Данная отсечка передается в соответствующем заголовке HTTP-запроса:
|
||||
При любом обращении к API в заголовке `X-Request-Deadline` соответствующего запроса можно передать параметр отсечки по времени, определяющий максимальное время ожидания завершения операции по запросу:
|
||||
|
||||
```
|
||||
X-Request-Deadline: 10s
|
||||
```
|
||||
|
||||
Значение отсечки может быть задано в формате, описанном в RFC 3339 (см. [Формат дат](#section/Format-dat)),
|
||||
либо в относительных величинах, например:
|
||||
По истечении указанного времени система прекращает обработку запроса. Рекомендуется указывать значение не более одной минуты, но не менее трёх секунд.
|
||||
|
||||
`150000ms`, `540s`, `3.5m`
|
||||
При этом возможные единицы измерения `ms`, `s`, `m`.
|
||||
В обоих случаях не рекомендуется, чтобы задаваемое значение было
|
||||
меньше **3 секунд** и превышало **1 минуту**.
|
||||
`X-Request-Deadline` может:
|
||||
|
||||
* задаваться в формате `date-time` согласно [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339);
|
||||
* задаваться в относительных величинах: в миллисекундах (`150000ms`), секундах (`540s`) или минутах (`3.5m`).
|
||||
|
||||
## Ошибки обработки запросов
|
||||
|
||||
В процессе обработки запросов силами нашей платформы могут происходить
|
||||
различные непредвиденные ситуации. Об их появлении платформа сигнализирует
|
||||
по протоколу HTTP соответствующими [статусами][5xx], обозначающими ошибки
|
||||
сервера.
|
||||
В процессе обработки запросов силами нашей системы могут происходить различные непредвиденные ситуации. Об их появлении система сигнализирует по протоколу HTTP соответствующими [статусами][5xx], обозначающими ошибки сервера.
|
||||
|
||||
| Код | Описание |
|
||||
| ------- | ---------- |
|
||||
| **500** | В процессе обработки платформой запроса возникла непредвиденная ситуация. При получении подобного кода ответа мы рекомендуем обратиться в техническую поддержку. |
|
||||
| **503** | Платформа временно недоступна и не готова обслуживать данный запрос. Запрос гарантированно не выполнен, при получении подобного кода ответа попробуйте выполнить его позднее, когда доступность платформы будет восстановлена. |
|
||||
| **504** | Платформа превысила допустимое время обработки запроса, результат запроса не определён. Попробуйте отправить запрос повторно или выяснить результат выполнения исходного запроса, если повторное исполнение запроса нежелательно. |
|
||||
| **500** | В процессе обработки системой запроса возникла непредвиденная ситуация. При получении подобного кода ответа мы рекомендуем обратиться в техническую поддержку. |
|
||||
| **503** | Система временно недоступна и не готова обслуживать данный запрос. Запрос гарантированно не выполнен, при получении подобного кода ответа попробуйте выполнить его позднее, когда доступность системы будет восстановлена. |
|
||||
| **504** | Система превысила допустимое время обработки запроса, результат запроса не определён. Попробуйте отправить запрос повторно или выяснить результат выполнения исходного запроса, если повторное исполнение запроса нежелательно. |
|
||||
|
||||
[5xx]: https://tools.ietf.org/html/rfc7231#section-6.6
|
||||
|
||||
termsOfService: http://rbk.money/
|
||||
termsOfService: 'https://vality.dev/'
|
||||
contact:
|
||||
name: RBKmoney support team
|
||||
email: support@rbk.money
|
||||
url: https://rbk.money
|
||||
host: api.rbk.money
|
||||
name: Команда техподдержки
|
||||
email: support@vality.dev
|
||||
url: 'https://api.vality.dev'
|
||||
host: api.vality.dev
|
||||
basePath: /wallet/v0
|
||||
schemes:
|
||||
- https
|
||||
@ -85,11 +71,10 @@ securityDefinitions:
|
||||
name: Authorization
|
||||
in: header
|
||||
description: >
|
||||
Для аутентификации вызовов мы используем [JWT](https://jwt.io).
|
||||
Cоответствующий ключ передается в заголовке.
|
||||
Для аутентификации вызовов мы используем [JWT](https://jwt.io). Соответствующий ключ передается в заголовке.
|
||||
|
||||
```shell
|
||||
Authorization: Bearer {TOKENIZATION|PRIVATE_JWT}
|
||||
Authorization: Bearer {YOUR_API_KEY_JWT}
|
||||
```
|
||||
|
||||
security:
|
||||
@ -142,15 +127,6 @@ parameters:
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
|
||||
challengeID:
|
||||
name: challengeID
|
||||
in: path
|
||||
description: Идентификатор процедуры идентификации личности
|
||||
required: true
|
||||
type: string
|
||||
maxLength: 40
|
||||
minLength: 1
|
||||
|
||||
walletID:
|
||||
name: walletID
|
||||
in: path
|
||||
@ -322,12 +298,6 @@ parameters:
|
||||
|
||||
tags:
|
||||
|
||||
- name: Payment Resources
|
||||
x-displayName: Платёжные ресурсы
|
||||
description: >
|
||||
Платформа предоставляет возможность токенизации исходных данных пользовательских платёжных ресурсов.
|
||||
См. [RBKmoney Payment Resource API](?api/payres/swagger.yaml).
|
||||
|
||||
- name: Providers
|
||||
x-displayName: Провайдеры услуг
|
||||
description: ""
|
||||
@ -365,27 +335,19 @@ tags:
|
||||
description: ""
|
||||
|
||||
- name: W2W
|
||||
x-displayName: Переводы внутри платформы
|
||||
description: "Переводы средств между кошельками внутри платформы"
|
||||
x-displayName: Переводы внутри системы
|
||||
description: "Переводы средств между кошельками внутри системы"
|
||||
|
||||
- name: Webhooks
|
||||
x-displayName: Webhooks
|
||||
description: >
|
||||
## RBKmoney Webhooks Management API
|
||||
## Vality Webhooks Management API
|
||||
|
||||
В данном разделе описаны методы, позволяющие управлять Webhook'ами, или
|
||||
инструментами для получения асинхронных оповещений посредством
|
||||
HTTP-запросов при наступлении одного или группы интересующих вас событий,
|
||||
например, о том, что выплата в рамках созданного кошелька была успешно
|
||||
проведена.
|
||||
В данном разделе описаны методы, позволяющие управлять Webhook'ами, или инструментами для получения асинхронных оповещений посредством HTTP-запросов при наступлении одного или группы интересующих вас событий, например, о том, что выплата в рамках созданного кошелька была успешно проведена.
|
||||
|
||||
## RBKmoney Webhooks Events API
|
||||
## Vality Webhooks Events API
|
||||
|
||||
Внимание! Только Webhooks Management API является частью платформы
|
||||
RBKmoney, а следовательно и данной спецификации. Для реализации
|
||||
обработчика присылаемых уведомлений вам необходимо будет ознакомиться со
|
||||
Swagger-спецификацей [RBKmoney Wallet Webhooks Events
|
||||
API](https://rbkmoney.github.io/wallet-webhook-events-api/).
|
||||
Внимание! Только Webhooks Management API является частью системы Vality, а следовательно и данной спецификации. Для реализации обработчика присылаемых уведомлений вам необходимо будет ознакомиться с OpenAPI-спецификацией [Vality Wallets Webhook Events API](https://vality.github.io/swag-wallets-webhook-events/).
|
||||
|
||||
- name: Error Codes
|
||||
x-displayName: Коды ошибок
|
||||
@ -399,5 +361,4 @@ tags:
|
||||
| InvalidReceiverResource| Неверный получатель перевода (введен номер несуществующей карты и т.п.) |
|
||||
| InsufficientFunds | Недостаточно средств на счете банковской карты |
|
||||
| PreauthorizationFailed | Предварительная авторизация отклонена (введен неверный код 3D-Secure, на форме 3D-Secure нажата ссылка отмены) |
|
||||
| RejectedByIssuer | Перевод отклонён эмитентом (установлены запреты по стране списания, запрет на покупки в интернете, платёж отклонен антифродом эмитента и т.п.) |
|
||||
|
||||
| RejectedByIssuer | Перевод отклонён эмитентом (установлены запреты по стране списания, запрет на покупки в интернете, платеж отклонен антифродом эмитента и т.п.) |
|
||||
|
26
gulpfile.js
26
gulpfile.js
@ -1,14 +1,14 @@
|
||||
var gulp = require('gulp');
|
||||
var util = require('gulp-util')
|
||||
var gulpConnect = require('gulp-connect');
|
||||
var connect = require('connect');
|
||||
var cors = require('cors');
|
||||
var path = require('path');
|
||||
var exec = require('child_process').exec;
|
||||
var portfinder = require('portfinder');
|
||||
var swaggerRepo = require('swagger-repo');
|
||||
const gulp = require('gulp');
|
||||
const util = require('gulp-util');
|
||||
const gulpConnect = require('gulp-connect');
|
||||
const connect = require('connect');
|
||||
const cors = require('cors');
|
||||
const exec = require('child_process').exec;
|
||||
const portfinder = require('portfinder');
|
||||
const swaggerRepo = require('swagger-repo');
|
||||
|
||||
var DIST_DIR = 'dist';
|
||||
const DIST_DIR = 'dist';
|
||||
const SPEC_DIR = 'spec';
|
||||
|
||||
gulp.task('build', function (cb) {
|
||||
exec('npm run build', function (err, stdout, stderr) {
|
||||
@ -17,22 +17,22 @@ gulp.task('build', function (cb) {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
gulp.task('edit', function () {
|
||||
portfinder.getPort({ port: 5000 }, function (err, port) {
|
||||
var app = connect();
|
||||
let app = connect();
|
||||
app.use(swaggerRepo.swaggerEditorMiddleware());
|
||||
app.listen(port);
|
||||
util.log(util.colors.green('swagger-editor started http://localhost:' + port));
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
gulp.task('reload', gulp.series('build', function () {
|
||||
gulp.src(DIST_DIR).pipe(gulpConnect.reload())
|
||||
}));
|
||||
|
||||
gulp.task('watch', function () {
|
||||
gulp.watch(['api/**/*', 'spec/**/*', 'web/**/*'], gulp.series('reload'));
|
||||
gulp.watch([`${SPEC_DIR}/**/*`, 'web/**/*'], gulp.series('reload'));
|
||||
});
|
||||
|
||||
gulp.task('serve', gulp.parallel('build', 'edit', 'watch', function () {
|
||||
|
13105
package-lock.json
generated
13105
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
@ -1,15 +1,14 @@
|
||||
{
|
||||
"name": "rbkmoney-wallet-api-spec",
|
||||
"version": "0.0.1",
|
||||
"name": "vality-wallet-openapi-spec",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"bower": "^1.7.7",
|
||||
"connect": "^3.4.1",
|
||||
"cors": "^2.7.1",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-connect": "^4.2.0",
|
||||
"gulp-util": "^3.0.7",
|
||||
"json-merge-patch": "^0.2.3",
|
||||
"npm": "^5.7.1",
|
||||
"npm": "^8.1.3",
|
||||
"portfinder": "^1.0.3",
|
||||
"shelljs": "^0.7.0",
|
||||
"swagger-repo": "^1.5.1",
|
||||
@ -19,7 +18,10 @@
|
||||
"scripts": {
|
||||
"build": "node ./scripts/build.js",
|
||||
"swagger": "swagger-repo",
|
||||
"test": "swagger-repo validate --basedir api/wallet/spec/ && swagger-repo validate --basedir api/privdoc/spec/ && swagger-repo validate --basedir api/payres/spec/",
|
||||
"test": "swagger-repo validate --basedir api/wallet/spec/ && swagger-repo validate --basedir api/payres/spec/",
|
||||
"start": "gulp serve"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gulp": "github:gulpjs/gulp"
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,6 @@ properties:
|
||||
- NoMatch
|
||||
- InvalidResourceToken
|
||||
- InvalidToken
|
||||
- AmbiguousPartyID
|
||||
example: NotFound
|
||||
name:
|
||||
description: Имя или идентификатор элемента сообщения, содержащего недопустимые данные
|
||||
|
@ -2,11 +2,10 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>RBKmoney Wallets API</title>
|
||||
<title>Vality Wallets API</title>
|
||||
<!-- needed for adaptive design -->
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
|
||||
<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js">
|
||||
</script>
|
||||
<!--
|
||||
|
Loading…
Reference in New Issue
Block a user