Тестирование
Тестирование карточных платежей
Для проведения тестирования методов API используйте выданный вам в процессе бординга идентификатор сайта — siteUid. Тестируйте на картах из списка ниже, иначе операция будет отклонена.
Пул тестовых карт:
-
MIR:
- 2200111753579001
- 2200117996077364
- 2200119066335755
- 2200113704697015
- 2200119753612540
-
VISA:
- 4282529780951108
- 4433079223745277
- 4433096334531891
- 4648276478204536
- 4433094693138127
-
MC:
- 5324619129671504
- 5186479678835191
- 5203415510291044
- 5586966955309532
- 5586966837580789
Конфигурация тестовых сценариев
Для тестирования сценариев и имитации отклонённых операций используйте в запросе поле comment в методе "Создание платежа". Поле должно содержать строку с JSON-структурой флагов и их значений.
Пример заполнения поля:
...
"comment": "{\"decline_payment\":false, \"3ds_flow\": \"3ds1\"}",
...
Описание флагов для принудительного отклонения операций:
"decline_payment": (Boolean) — при значенииtrueплатеж будет отклонен системой;"decline_capture": (Boolean) — при значенииtrueподтверждение будет отклонено системой;"decline_refund": (Boolean) — при значенииtrueвозврат будет отклонен системой.
Описание значений флага для тестирования сценариев 3DSecure (3DS):
⚠️ 3DS-аутентификация не производится при оплате по ранее сохранённым реквизитам: при передаче значений CIT_CREDENTIAL_ON_FILE или MIT_CREDENTIAL_ON_FILE в поле paymentMethod.tokenizationCredentials.type метода "Создание платежа".
При оплате без использования ранее сохраненных реквизитов доступна имитация 3DS с помощью флага "3ds_flow". Флаг задаёт версию 3DS, которая вернется ответе на запрос создания платежа.
Принимает значения:
"none"— значение по умолчанию"3ds1"— эмуляция прохождения 3DS1"3ds2"— эмуляция прохождения 3DS2
При отсутствии флага 3ds_flow или значении none платеж будет переведен в статус COMPLETED.
Для успешного завершения 3DS-аутентификации при вызове метода Завершение аутентификации передайте в запросе следующий PaRes:
eJxVjkELgkAQhf+K7N127ZQ1rkTaJaRIO8uiky7kGjsa/fxWiUJ4h8e8j4+B+N09vBda0r2JWLASzENT9bU2TcR2t+Lob1gsoWgtYpJjNVqUkCGRatDTdcSo77DUNZpB3zVaJuGyvyL9t6eySAsiOx9OaVI6Ls2Bz7gE/pVOdlu1ygzcqcapkjsmakC5FmHoi8ClEGI7JQA+L07zQ/ni2Q9oEUph
Тестирование СБП
Для целей разработки и тестирования реализована возможность воспроизвести поддерживаемые ответы при работе с методами раздела "Функциональные ссылки СБП".
Для проведения тестирования необходимо:
- Использовать siteUid, выданный при онбординге;
- Задать тестовый сценарий в запросе на создание функциональной ссылки СБП.
Конфигурация тестовых сценариев
Сценарий передаётся в одном из полей метода на создание функциональной ссылки СБП в зависимости от типа QR-кода:
-
paymentPurpose— для создания статичных и динамических QR-кодов (QRCodeDynamic,QRCodeStatic) и сценария "Оплата с привязкой счета" (QRCodeDynamic+ заполненное полеpaymentToken); -
paymentToken.tokenizationPurpose— для создания токена (QRCodeToken) и последующей работой с платежом.
В методе Создание платежа при оплате СБП-токеном (SBPTokenPaymentMethod):
comment- в запросе при оплате по СБП-токену, принимает поле сценарияpayWithToken
Поле должно содержать JSON-строку (экранированный JSON), определяющую сценарии обработки. Если поле не заполнено или содержит некорректный JSON — используется сценарий по умолчанию.
Поля сценария
1. createQrc — определяет сценарий поведения при создании QR-кода и дальнейшей обработки платежа и выпуска токена.
| Значение | Описание |
|---|---|
OK_WITHOUT_CALLBACKS | Значение по умолчанию. QR-код успешно создан, уведомления не отправляются. Используется, если требуется протестировать только генерацию QR-кода без имитации оплаты. |
OK_PAYMENT_ACCEPTED | QR-код успешно создан, далее имитируется успешный платёж: отправляется уведомление об успешной обработке платежа. |
OK_PAYMENT_REJECTED | QR-код успешно создан, далее имитируется отклонение платежа: отправляется уведомление об отказе. |
OK_SUBSCRIPTION_ACCEPTED | QR-код успешно создан, далее имитируется успешная активация токена и отправка уведомления о его статусе. (Используется для QRCodeToken для выпуска токена) |
OK_PAYMENT_AND_SUBSCRIPTION_ACCEPTED | QR-код успешно создан, далее имитируется успешный платёж и успешная активация токена (Используется для сценария "Оплата с привязкой счета"). |
OK_SUBSCRIPTION_REJECTED | QR-код успешно создан, далее имитируется отказ в активации токена. |
ERROR | Ошибка при создании QR-кода (например, неверные параметры запроса или сбой на стороне СБП). |
2. payWithToken — Определяет дальнейший сценарий поведения при оплате по токену.
| Значение | Описание |
|---|---|
OK | Значение по умолчанию. Оплата по токену успешно выполнена. Возвращается успешный ответ, отправляется уведомление об успешном платеже. |
OK_WITHOUT_CALLBACKS | Оплата по токену успешно выполнена. Уведомления не отправляются. |
OK_REJECTED | Оплата по токену отклонена. Отправляется уведомление об отказе. |
ERROR | Ошибка при оплате по токену (например, сбой сервиса, некорректный запрос). Возвращается ошибка. |
3. refund — Определяет сценарий поведения при возврате платежа.
| Значение | Описание |
|---|---|
OK_WITHOUT_CALLBACKS | Значение по умолчанию. Возврат считается успешным, но уведомления не отправляются. |
OK_ACCEPTED | Возврат успешно выполнен, отправляется уведомление о подтверждении возврата. |
OK_REJECTED | Возврат отклонён, отправляется уведомление о неуспехе операции. |
ERROR | Ошибка при возврате |
Примеры сценариев
- Успешное создание динамического QR-кода без последующей оплаты
....
"qrcType": "DYNAMIC",
"paymentPurpose": "{\"createQrc\":\"OK_WITHOUT_CALLBACKS\"}"
....
- Успешное создание статического QR-кода с последующей имитацией успешной оплаты.
....
"qrcType": "STATIC",
"paymentPurpose": "{\"createQrc\":\"OK_PAYMENT_ACCEPTED\"}"
....
- Успешное создание динамического QR-кода с последующей имитацией успешной оплаты и имитацией успешного возврата при отправке запроса Создание операции возврата
...
"qrcType": "DYNAMIC",
"paymentPurpose": "{\"createQrc\":\"OK_PAYMENT_ACCEPTED\",\"refund\":\"OK_ACCEPTED\"}"
...
- Сценарий "Оплата с привязкой счета". Генерация динамического QR-кода с успешной оплатой и привязкой счета.
....
"qrcType": "DYNAMIC",
"paymentToken": {
"tokenizationPurpose": "Тестирование сценария оплаты с привязкой счета"
},
"paymentPurpose": "{\"createQrc\":\"OK_PAYMENT_AND_SUBSCRIPTION_ACCEPTED\"}",
....
- Сценарий "Привязка счета без оплаты". Отказ от активации подписки.
....
"qrcType": "TOKEN",
"paymentToken": {
"tokenizationPurpose": "{\"createQrc\":\"OK_SUBSCRIPTION_REJECTED\"}"
},
....
- Сценарий "Оплата по привязке". Имитирует отказ оплаты по токену при отправке запроса Создание платежа с методом оплаты "SBP_TOKEN".
....
"paymentMethod": {
"type":"SBP_TOKEN",
"token": "AS1000670LSS7DN18SJQDNP4B05KLJL2",
},
"comment": "{\"payWithToken\":\"OK_REJECTED\"}"
....