Перейти к основному содержимому

Тестирование

Тестирование карточных платежей

Для проведения тестирования методов 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_ACCEPTEDQR-код успешно создан, далее имитируется успешный платёж: отправляется уведомление об успешной обработке платежа.
OK_PAYMENT_REJECTEDQR-код успешно создан, далее имитируется отклонение платежа: отправляется уведомление об отказе.
OK_SUBSCRIPTION_ACCEPTEDQR-код успешно создан, далее имитируется успешная активация токена и отправка уведомления о его статусе. (Используется для QRCodeToken для выпуска токена)
OK_PAYMENT_AND_SUBSCRIPTION_ACCEPTEDQR-код успешно создан, далее имитируется успешный платёж и успешная активация токена (Используется для сценария "Оплата с привязкой счета").
OK_SUBSCRIPTION_REJECTEDQR-код успешно создан, далее имитируется отказ в активации токена.
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\"}"
....