Перейти до основного вмісту

Тестові сценарії

Загальна інформація

Пропонуємо перед початком обробки реальних оплат пройти тестові кейси. У цьому розділі наведено детальний опис сценаріїв, які дозволяють:

  • перевірити правильність та стабільність роботи вашої інтеграції
  • імітувати різні ситуації здійснення платежів, забезпечуючи готовність системи до обробки реальних транзакцій та запобігаючи можливим помилкам у роботі

Рекомендуємо скористатися нашою Postman-колекцією: форкніть її у приватний workspace, підставте власні ключі та виконайте тестові запити за кілька хвилин. Це пришвидшить перевірку кейсів і дасть прогнозовані результати для звірки.

Вимоги:

  1. Створений обліковий запис в Мерчант-порталі та наявний тестовий проєкт з API-ключами.
  2. Налаштований тестовий проєкт командою технічної підтримки Tranzzo.
  3. Здійснена інтеграція.

Direct-інтеграція

Передумови для початку тесту:

  1. У вас налаштована direct-інтеграція
  2. Створений і активний тестовий проект з API-ключами
  3. Налаштовано опрацювання вебхуків та статус-кодів.
Тест-кейсДія
Одностадійні платежі (Purchase)
  1. Створіть запит на оплату на суму 10 XTS
    інформація

    Якщо сертифікація PCIDSS пройдена в запиті можна передавати карткові дані.
    ​Якщо сертифікація PCIDSS не пройдена, то в платежах можливо використовувати токени Tranzzo отримані, за допомогою Токенізаційного віджету.

  2. Платіж може отримати одразу фінальний статус Успіх, або необхідно буде пройти 3ds/otp перевірку. У випадку, якщо "status_description": "3DS verification is required", то відкрити посилання в user_action_url. Підтвердити ACS-перевірку натиснувши CONFIRM.
  3. Отримайте вебхук на вашому сервері. Він містить статус платежу.
  • Оплата карткою Visa, Mastercard
  1. Cтворіть запит на оплату з передачею cc_number, exp_month, exp_year, card_cvv.
  2. Використовуйте тестові картки відповідно до бренду.
    Як приклад,
    для оплати Visa - 4242 4242 4242 4242
    для оплати Mastercard - 5454 5454 5454 5454
  3. Отримайте вебхук на вашому сервері. Він містить статус платежу.
  • Оплата гаманцями A/Gpay
  1. Cтворіть запит на оплату з передачею cc_token
    інформація

    cc_token можна отримати за допомогою токенізаційного віджету або попереднім hosted платежем у відповіді на запит або у колбеці.


    В даному випадку 3ds підтвердження не буде, операція одразу отримає фінальний статус.
  2. Отримайте вебхук на вашому сервері. Він містить статус платежу.
  • Оплата карткою з 3ds/ non 3ds
  1. Cтворіть запит на оплату з передачею карткових даних та передачею параметру order_3ds_bypass
    Використовуйте:
    • Для 3DS: order_3ds_bypass=always, тестова картка - 4242 4242 4242 4242
    • Без 3DS: order_3ds_bypass=never, тестова картка - 5555 5555 5555 4444
  2. Отримайте вебхук на вашому сервері. Він містить статус платежу.
  • Оплата з блоком продуктів (для фіскалізації платежу)
  1. Cтворіть запит на оплату з передачею даних про продукти
    products - масив продуктів, який необхідно фіскалізувати, може бути декілька товарів в продуктах, але загальна сума price*qty має дорівнювати сумі продуктів amount.
  2. Отримайте вебхук на вашому сервері. Він містить статус платежу.
Повернення (Refund)Повернення (Refund) - це повернення коштів від продавця (або платіжного сервісу) покупцю після того, як платіж уже був проведений.
Повернути кошти можна тільки за платежем, який має статус “Успішний” (success)
Може бути повний (full refund) або частковий (partial refund). Часткових повернень може бути декілька в рамках суми первинної операції.
  • Успішне повне повернення (full refund)
Після успішної оплати (Purchase):
  1. Виконайте повернення (full refund) на всю суму 10 XTS.
    Використовуйте order_id операції, на яку виконується refund (це order_id успішного Purchase)
  2. Отримайте вебхук повернення (refund) на вашому сервері. Він містить статус платежу.
  • Успішне часткове повернення (partial refund)
Після успішної оплати (Purchase):
  1. Виконайте часткове повернення (partial refund) на суму менше 10 XTS (як, приклад на суму 5, 8 XTS).
    Використовуйте order_id операції, на яку виконується refund (це order_id успішного Purchase)
  2. Отримайте вебхук повернення (refund) на вашому сервері. Він містить статус платежу.
  • Успішне повне повернення (full refund) за фіскалізованою оплатою.
Після успішної оплати (Purchase):
  1. Виконайте повернення (full refund) на всю суму 10 XTS.
    Для проведення повернення коштів запит також повинен містити відомості про продукт, повернення якого здійснюється.
  2. Отримайте вебхук повернення (refund) на вашому сервері. Він містить статус платежу.
Отримання квитанціїКвитанція — це документ для вашого клієнта, який підтверджує факт успішної оплати/операції. Може бути у двох форматах: PDF-файл чи raw HTML.
Для отримання квитанції скористайтесь запитом.
Тест повного циклу Одностадійної оплати (Purchase):
Оплата (карткою, A/Gpay) з повним або частковим поверненням.
  1. Ініціюйте запит на оплату на 10 XTS з cc_token або картковими даними.
    Приклад запиту з cc_token:
    $ curl "https://cpay.tranzzo.com/api/v1/payment"
    -H "Content-Type: application/json"
    -H "X-API-AUTH: CPAY-HMAC-SHA1 ${API_KEY}:${SIGNATURE}"
    -H "X-API-KEY: ${ENDPOINTS_KEY}"
    -X POST -d '{
    "pos_id": "${POS_ID}",
    "mode": "direct",
    "method": "purchase",
    "amount": 10,
    "currency": "XTS",
    "description": "Order description",
    "order_id": "123",
    "order_3ds_bypass": "always",
    "cc_token": "ODJkZjBhNmY2OTMyNDJlN2wjMjFjfTQzOXU3ZDFhYzI6cWJmWHFmMHlzM3hYaXJMWEZv",
    "server_url": "https://callback.blackhole.com/callback",
    "result_url": "https://example.com/result",
    "payload": "sale=true",
    "customer_referrer": "https://example.com",
    "browser_fingerprint": {
    "browserColorDepth": "24",
    "browserScreenHeight": "860",
    "browserScreenWidth": "1600",
    "browserJavaEnabled": "false",
    "browserLanguage": "uk-UA",
    "browserTimeZone": "Europe/Kiev",
    "browserTimeZoneOffset": "-120",
    "browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "browserIpAddress": "127.0.0.1",
    "browserUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36"
    }
    }'
  2. Отримайте відповідь і переконайтесь, що статус платежу Success.
    Приклад відповіді:
    {
    "payment_id": "9b1392a5-d030-4e85-b02d-9b7191ea2a5e",
    "order_id": "123",
    "gateway_order_id": "9B39A076243EB3EBB0925EAA981763AC:158545961",
    "billing_order_id": "11231231231",
    "transaction_id": "a8d80c86-0c7b-41bc-b63d-1e78f80edcd9",
    "pos_id": "dc728de1-51ef-4ef1-80f7-3b44b07b5667",
    "mode": "direct",
    "method": "purchase",
    "amount": 10,
    "currency": "XTS",
    "description": "Order description",
    "status": "pending",
    "status_code": "2122",
    "status_description": "3DS verification is required to finish the transaction.",
    "user_action_required": true,
    "user_action_url": "http://secure.secure3d.net/s3st?a=start_3ds&tid=a8d81c860c7b41bcb65d1e78f80edcd923ac18d5dd1d4a37e6c7df7d5e4bec74ab5d790b",
    "eci": "7",
    "mcc": "4900",
    "options_3ds": "supported",
    "cc_mask": "424242******4242",
    "cc_token": "ODJkZjBhNmY2OTMyNDJlN2wjMjFjfTQzOXU3ZDFhYzI6cWJmWHFmMHlzM3hYaXJMWEZv",
    "cc_token_expiration": "2020-10-10T10:10:22",
    "customer_id": "123",
    "customer_ip": "194.183.171.239",
    "customer_fname": "Tom",
    "customer_lname": "Hanks",
    "customer_email": "[email protected]",
    "customer_phone": "+380999999999",
    "customer_country": "UA",
    "result_url": "https://example.com/result",
    "created_at": "2018-10-10T10:10:22.100",
    "processed_at": "2018-10-10T10:10:23.300",
    "fee": {
    "amount": 0,
    "currency": "XTS"
    },
    "percent_fee": {
    "amount": 0,
    "currency": "XTS"
    },
    "fixed_fee": {
    "amount": 0,
    "currency": "XTS"
    },
    "payload": "sale=true",
    "bank_short_name": "Bank name",
    "receipt_url": "https://cpay.tranzzo.com/public/receipt/12491284012940129402424124124124124ffef3re3rf32f2vf"
    }
  3. Опрацюйте вебхук та переконайтесь, що отримані усі обов'язкові параметри, які необхідні для подальшого опрацювання оплати. (Як приклад, status, amount, order_id,fee)
  4. Відправте відповідь 200 OK із свого сервера, що вебхук успішно отриманий.
  5. Створіть запит на повне (10 XTS) або часткове (як, приклад на суму 5 або 8 XTS) повернення.
    Приклад запиту:
    $ curl "https://cpay.tranzzo.com/api/v1/refund"
    -H "Content-Type: application/json"
    -H "X-API-AUTH: CPAY-HMAC-SHA1 ${API_KEY}:${SIGNATURE}"
    -H "X-API-KEY: ${ENDPOINTS_KEY}"
    -X POST -d '{
    "pos_id": "${POS_ID}",
    "order_id": "123",
    "order_currency": "XTS",
    "refund_amount": 8,
    "comment": "10101",
    "server_url": "https://callback.blackhole.com/callback/"
    }'
  6. Перевірте статус, що повернення Success.
Очікуваний результат: Кошти повернені на рахунок клієнта.

Hosted-інтеграція

Передумови для початку тесту:

  1. У вас налаштована hosted-інтеграція
  2. Створений і активний тестовий проект з API-ключами
  3. Налаштовано опрацювання вебхуків та статус-кодів.
Тест-кейсДія
Одностадійні платежі (Purchase)
  1. Створіть запит на оплату на суму 10 XTS
    Відповідь зі статусом 303 HTTP на успішний запит містить заголовок location, в який клієнт повинен бути перенаправлений для продовження оплати.
    Приклад відповіді:
    HTTP/2 303
    # .. other headers
    location: https://cpay.tranzzo.com/api/v1/checkout/1b806782-3d97-4444-abb9-6e4b45d34663/form
  2. Перейдіть за посиланням на чекаут та заповніть усі необхідні поля та натисніть “Сплатити”
    Вигляд платіжної сторінки:
  3. Платіж може отримати одразу фінальний статус Успіх, або необхідно буде пройти 3ds/otp перевірку. У випадку, якщо "status_description": "3DS verification is required", то відкрити посилання в user_action_url. Підтвердити ACS-перевірку натиснувши CONFIRM.
  4. Отримайте вебхук на вашому сервері. Він містить статус платежу.
  • Оплата карткою Visa, Mastercard
  1. Cтворіть запит на оплату
  2. Використовуйте тестові картки відповідно до карткового бренду.
    Як приклад,
    для оплати Visa - 4242 4242 4242 4242
    для оплати Mastercard - 5454 5454 5454 5454
  3. Отримайте вебхук на вашому сервері. Він містить статус платежу.
  • Оплата гаманцями A/Gpay
  1. Cтворіть запит на оплату
  2. Перейти за посиланням. Має відкритися чекаут.
  3. Оберіть один з методів для оплати A/Gpay.
  4. Отримайте вебхук на вашому сервері. Він містить статус платежу.
  • Оплата карткою з 3ds/ non 3ds
  1. Cтворіть запит на оплату з введенням карткових даних та передачею параметру order_3ds_bypass
    Використовуйте:
    • Для 3DS: order_3ds_bypass=always, тестова картка - 4242 4242 4242 4242
    • Без 3DS: order_3ds_bypass=never, тестова картка - 5555 5555 5555 4444
      Деталі по використанню протоколу 3ds
  2. Отримайте вебхук на вашому сервері. Він містить статус платежу.
  • Оплата з блоком продуктів (для фіскалізації платежу)
  1. Cтворіть запит на оплату з передачею даних про продукти
    products - масив продуктів, який необхідно фіскалізувати, може бути декілька товарів в продуктах, але загальна сума price*qty має дорівнювати сумі продуктів amount.
    Приклад:
    {
    "amount": 6,
    "products": [
    {
    "name": "Apple",
    "amount": 2,
    "currency": "UAH",
    "qty": 3,
    "id": "1",
    "unit": "kg"
    }
    ]
    }
  2. Отримайте вебхук на вашому сервері. Він містить статус платежу.
Повернення (Refund)Повернення (Refund) - це повернення коштів від продавця (або платіжного сервісу) покупцю після того, як платіж уже був проведений.
Повернути кошти можна тільки за платежем, який має статус “Успішний” (success)
Може бути повний (full refund) або частковий (partial refund). Часткових повернень може бути декілька в рамках суми первинної операції.
  • Успішне повне повернення (full refund)
Після успішної оплати (Purchase):
  1. Виконайте повернення (full refund) на всю суму 10 XTS.
    Використовуйте order_id операції, на яку виконується refund (це order_id успішного Purchase)
  2. Отримайте вебхук повернення (refund) на вашому сервері. Він містить статус платежу.
  • Успішне часткове повернення (partial refund)
Після успішної оплати (Purchase):
  1. Виконайте часткове повернення (partial refund) на суму менше 10 XTS (як, приклад на суму 5, 8 XTS).
    Використовуйте order_id операції, на яку виконується refund (це order_id успішного Purchase)
  2. Отримайте вебхук повернення (refund) на вашому сервері. Він містить статус платежу.
  • Успішне повне повернення (full refund) за фіскалізованою оплатою.
Після успішної оплати (Purchase):
  1. Виконайте повернення (full refund) на всю суму 10 XTS.
    Для проведення повернення коштів запит також повинен містити відомості про продукт, повернення якого здійснюється.
  2. Отримайте вебхук повернення (refund) на вашому сервері. Він містить статус платежу.
Отримання квитанціїКвитанція — це документ для вашого клієнта, який підтверджує факт успішної оплати/операції.
Може бути у двох форматах: PDF-файл чи raw HTML.
Способи отримання квитанції:
  1. 1. Після оплати на платіжній сторінці
    • завантаження PDF-файлу
    • відправка на Email
  2. Запит до API
  3. В особистому кабінеті Мерчант-портал
Тест повного циклу Одностадійної оплати (Purchase):
Оплата (карткою, A/Gpay) з повним або частковим поверненням.
  1. Ініціюйте запит на оплату на 10 XTS з тестовою карткою 4242 4242 4242 4242
    Приклад запиту:
    $ curl -i "https://cpay.tranzzo.com/api/v1/payment"
    -H "Content-Type: application/json"
    -H "X-API-AUTH: CPAY-HMAC-SHA1 ${API_KEY}:${SIGNATURE}"
    -H "X-API-KEY: ${ENDPOINTS_KEY}"
    -X POST -d '{
    "pos_id": "${POS_ID}",
    "mode": "hosted",
    "method": "purchase",
    "amount": 1,
    "currency": "XTS",
    "description": "description_1",
    "order_id": "123",
    "order_3ds_bypass": "always",
    "server_url": "https://callback.blackhole.com/callback",
    "result_url": "https://example.com/result",
    "payload": "sale=true"
    }'
  2. Перейдіть за посиланням на чекаут та заповніть усі необхідні поля та натисніть “Сплатити”
    Приклад платіжної сторінки:
  3. Отримайте відповідь і переконайтесь, що статус платежу Success.
    Вигляд платіжної сторінки:
  4. Створіть запит на повне (10 XTS) або часткове (як, приклад на суму 5 або 8 XTS) повернення.
    Приклад запиту:
    $ curl "https://cpay.tranzzo.com/api/v1/refund"
    -H "Content-Type: application/json"
    -H "X-API-AUTH: CPAY-HMAC-SHA1 ${API_KEY}:${SIGNATURE}"
    -H "X-API-KEY: ${ENDPOINTS_KEY}"
    -X POST -d '{
    "pos_id": "${POS_ID}",
    "order_id": "123",
    "order_currency": "XTS",
    "refund_amount": 8,
    "comment": "10101",
    "server_url": "https://callback.blackhole.com/callback/"
    }'
  5. Перевірте статус, що повернення Success.
  6. Отримайте вебхук повернення (refund) на вашому сервері. Перевірте статус, що повернення Success.
Очікуваний результат: Кошти повернені на рахунок клієнта.