add error mapping draft (#168)

* add error mapping draft

* add werker 'dev' rule

* add 'dev' make target helper

* add merchant errors; refactor client errors

* update payment error type

* add payment error code descriptions

* update client payment errors list

* apply review comments

* apply review comments

* apply review comments

* apply review comments

* apply review comments

* apply review comments
This commit is contained in:
Petr Kozorezov 2018-04-02 11:40:30 +03:00 committed by GitHub
parent 9a7dd8879c
commit 0de2fa30c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 188 additions and 1 deletions

View File

@ -6,3 +6,6 @@ build:
start:
npm start
dev:
wercker dev --publish 3000 --direct-mount

View File

@ -0,0 +1,20 @@
description: |
[Ошибка, возникшая в процессе проведения платежа](#tag/Error-Codes)
type: object
required:
- code
properties:
code:
description: Основной код ошибки
type: string
subError:
description: Детализация описания ошибки
type: object
required:
- code
properties:
code:
description: Детализация кода ошибки
type: string
subError:
$ref: '#/definitions/PaymentError/properties/subError'

View File

@ -13,4 +13,4 @@ properties:
- refunded
- failed
error:
$ref: '#/definitions/LogicError'
$ref: '#/definitions/PaymentError'

View File

@ -662,3 +662,161 @@ tags:
| **504** | Платформа превысила допустимое время обработки запроса, результат запроса не определён. Попробуйте отправить запрос повторно или выяснить результат выполнения исходного запроса, если повторное исполнение запроса нежелательно. |
[5xx]: https://tools.ietf.org/html/rfc7231#section-6.6
## Ошибки платежа
Ошибки, передаваемые в платежную форму (отображаются плательщикам):
| Код | Описание |
| --- | -------- |
| InvalidPaymentTool | Неверный платежный инструмент (введен номер несуществующей карты, отсутствующего аккаунта и т.п.) |
| AccountLimitsExceeded | Превышены лимиты (например, в личном кабинете плательщика установлено ограничение по сумме платежа, стране списания) |
| InsufficientFunds | Недостаточно средств на счете |
| PreauthorizationFailed | Предварительная авторизация отклонена (введен неверный код 3D-Secure, на форме 3D-Secure нажата ссылка отмены) |
| RejectedByIssuer | Платёж отклонён эмитентом (установлены запреты по стране списания, запрет на покупки в интернете, платеж отклонен антифродом эмитента и т.п.) |
| PaymentRejected | платёж отклонён по иным причинам |
Ошибки, передаваемые в ЛК мерчанта (отображаются только вам):
- rejected_by_inspector
Отклонено сервисом противодействия мошенничеству
- preauthorization_failed
Ошибка предавторизации (3DS)
- authorization_failed:
Ошибка авторизации платежа у провайдера
- unknown
Неизвестная ошибка авторизации
- merchant_blocked
Мерчант заблокирован
- operation_blocked
Операция платежа заблокирована
- account_not_found
Аккаунт не найден
- account_blocked
Аккаунт заблокирован
- account_stolen
Аккаунт украден
- insufficient_funds
Не хватает средств
- account_limit_exceeded:
Превышен лимит на счете плательщика
- unknown
Объект лимита неизвестен
- amount
Лимит на сумму
- number
Лимит на количество попыток
- provider_limit_exceeded:
Превышен лимит на мерчанта у провайдера (вас или платформы RBKmoney)
- unknown
Объект лимита неизвестен
- amount
Лимит на сумму
- number
Лимит на количество попыток
- payment_tool_rejected:
Платёжный интрумент отклонён
- unknown
Неизвестный платёжный интрумент
- bank_card_rejected:
Банковская карта отклонена
- unknown
Причина неизвестна
- card_number_invalid
Неверный номер карты
- card_expired
Истёк срок действия карты
- card_holder_invalid
Неверный владелец карты
- cvv_invalid
Неверный CVV код
- issuer_not_found
Эмитент не найден
- security_policy_violated
Нарушения политики безопасности
- temporarily_unavailable
Временная недоступность третьих сторон
- rejected_by_issuer
Отклонено эмитентом
Например, в случае некорретного CVV:
```
{
"code": "authorization_failed",
"subError": {
"code": "payment_tool_rejected",
"subError": {
"code": "bank_card_rejected",
"subError": {
"code": "cvv_invalid"
}
}
}
}
```
Если вы получили ошибку, которой нет в данном описании, обратитесь в техническую поддержку.

View File

@ -12,6 +12,12 @@ build:
url: ${SLACK_WEBHOOK_URL}
username: "wercker"
dev:
steps:
- npm-install
- npm-test
- internal/shell
release-epic:
steps:
- script: