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

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

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

Для тестирования 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 возврат будет отклонён системой

Описание значений флага для тестирования сценариев 3-D Secure (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) и последующей работы с платежом
  • В поле comment метода «Создание платежа» при оплате СБП-токеном (SBPTokenPaymentMethod), принимает поле сценария payWithToken

  • В поле paymentPurpose метода «Активация Кассовой ссылки СБП», принимает поля сценария:

    • activateCRQRC
    • deactivateCRQRC
    • getCRQRCStatus
    • refund
  • paymentPurpose — для создания статичных и динамических QR-кодов (QRCodeDynamic, QRCodeStatic) и сценария «Оплата с привязкой счета» (QRCodeDynamic + заполненное поле paymentToken)

  • paymentToken.tokenizationPurpose — для создания токена (QRCodeToken) и последующей работой с платежом

В методе «Создание платежа» при оплате СБП-токеном (SBPTokenPaymentMethod):

  • comment — в запросе при оплате по СБП-токену, принимает поле сценария payWithToken

Поле должно содержать JSON-строку (экранированный JSON), определяющую сценарии обработки. Если поле не заполнено или содержит некорректный JSON — используется сценарий по умолчанию.

Поля сценария

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-кода. Например, неверные параметры запроса или сбой на стороне СБП.

payWithToken

Определяет дальнейший сценарий поведения при оплате по токену.

ЗначениеОписание
OKЗначение по умолчанию. Оплата по токену успешно выполнена. Возвращается успешный ответ, отправляется уведомление об успешном платеже.
OK_WITHOUT_CALLBACKSОплата по токену успешно выполнена. Уведомления не отправляются.
OK_REJECTEDОплата по токену отклонена. Отправляется уведомление об отказе.
ERRORОшибка при оплате по токену — например, сбой сервиса или некорректный запрос. Возвращается ошибка.

refund

Определяет сценарий поведения при возврате платежа.

ЗначениеОписание
OK_WITHOUT_CALLBACKSЗначение по умолчанию. Возврат считается успешным, но уведомления не отправляются.
OK_ACCEPTEDВозврат успешно выполнен, отправляется уведомление о подтверждении возврата.
OK_REJECTEDВозврат отклонён, отправляется уведомление о неуспехе операции.
ERRORОшибка при возврате.

activateCRQRC

Определяет сценарий поведения при активации кассовой ссылки и дальнейшей обработке платежа.

ЗначениеОписание
OK_WITHOUT_CALLBACKSЗначение по умолчанию. Кассовая ссылка успешно активирована, уведомления не отправляются. Используется, если требуется протестировать только активацию кассовой ссылки без имитации оплаты.
OK_PAYMENT_ACCEPTEDКассовая ссылка успешно активирована, далее имитируется успешный платёж: отправляется уведомление об успешной обработке платежа.
OK_PAYMENT_REJECTEDКассовая ссылка успешно активирована, далее имитируется отклонение платежа: отправляется уведомление об отказе.
ERRORОшибка при активации кассовой ссылки. Например, сбой сервиса.

deactivateCRQRC

Определяет сценарий поведения при деактивации кассовой ссылки.

ЗначениеОписание
OKЗначение по умолчанию. Кассовая ссылка успешно деактивирована.
ERRORОшибка при деактивации кассовой ссылки. Например, сбой сервиса.
инфо

Если кассовая ссылка активирована со сценарием деактивации ERROR, её нельзя деактивировать запросом деактивации кассовой ссылки. Но её можно активировать с другим сценарием через запрос активации кассовой ссылки.

getCRQRCStatus

Определяет сценарий поведения при запросе статуса кассовой ссылки.

ЗначениеОписание
OK_WAITING_PAYMENTЗначение по умолчанию. Возвращаемый статус кассовой ссылки — WAITING_PAYMENT. Кассовая ссылка активирована и готова к оплате.
OK_IN_PROGRESSВозвращаемый статус кассовой ссылки — IN_PROGRESS. Операция по кассовой ссылке в процессе выполнения.
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\"}"
....
  • Успешная активация кассовой ссылки с последующей имитацией успешной оплаты и имитацией успешного возврата при отправке запроса «Создание операции возврата».
...
"paymentPurpose": "{\"activateCRQRC\":\"OK_PAYMENT_ACCEPTED\",\"refund\":\"OK_ACCEPTED\"}"
...
  • Успешная активация кассовой ссылки без последующей оплаты. Имитирует ошибку при деактивации кассовой ссылки.
...
"paymentPurpose": "{\"activateCRQRC\":\"OK_WITHOUT_CALLBACKS\",\"deactivateCRQRC\":\"ERROR\"}"
...

Особенности тестовой среды

При выполнении запроса «Создание Кассовой ссылки СБП», в случае передачи опционального поля qrcId, его значение должно иметь префикс TEST- для успешного выполнения запроса.

Передача значения без соответствующего префикса может быть использована для имитации ошибки при выполнении запроса — например, сбоя сервиса.