# Тестування (/uk/online/getting-started/testing)



Перш ніж приймати реальні платежі, протестуйте свою інтеграцію Checkout у пісочниці (sandbox) Tapaya. Платежі в пісочниці використовують тестові картки, тож реальні кошти не переказуються. Checkout у робочому середовищі приймає реальні платежі від схвалених мерчантів.

<div className="fd-steps [&_h3]:fd-step">
  ### Спрямуйте свій сервер на API пісочниці [#point-your-server-at-the-sandbox-api]

  Задайте для `TAPAYA_CHECKOUT_API_URL` значення `https://api.sandbox.tapaya.com` і збережіть checkout-ключ мерчанта в `TAPAYA_CHECKOUT_API_KEY`. Тримайте обидва значення на своєму сервері.

  ```bash title=".env"
  TAPAYA_CHECKOUT_API_URL=https://api.sandbox.tapaya.com
  TAPAYA_CHECKOUT_API_KEY=tapaya_test_...
  ```

  Пройдіть [онбординг](/merchants/onboarding) з можливістю онлайн-платежів і перевірте в [налаштуваннях Checkout](/online/integration/checkout_settings), що мерчант має статус **Ready**. Якщо ви використовуєте Hosted Checkout, збережіть URL повернення.

  ### Створіть тестову сесію [#create-a-test-session]

  Створіть сесію для тестового замовлення точно так, як у [швидкому старті](./quick_start_guide). Збережіть повернений
  `id` разом із замовленням до переспрямування, щоб перевірити результат, навіть якщо браузер закрито.

  ### Оплатіть тестовою карткою [#pay-with-a-test-card]

  Відкрийте `url` сесії та оплатіть однією з наведених нижче карток, з будь-якою майбутньою датою закінчення терміну дії та CVC `123`.

  ### Перевірте результат на своєму сервері [#verify-from-your-server]

  Отримайте сесію на своєму сервері та порівняйте її референс замовлення, суму, валюту та
  `paymentStatus` зі збереженим замовленням. Повернення браузера на ваш URL успіху не доводить оплату.
</div>

## Тестові картки [#test-cards]

Використовуйте ці тестові картки.

| Сценарій            | Номер картки          | Очікуваний результат                                                                                        |
| :------------------ | :-------------------- | :---------------------------------------------------------------------------------------------------------- |
| Платіж успішний     | `4242 4242 4242 4242` | `paymentStatus: successful`. Ваш сервер виконує замовлення один раз.                                        |
| Картку відхилено    | `4916 0184 7581 4056` | `paymentStatus: failed`, `status` залишається `open`. Клієнт може спробувати іншу картку в тій самій сесії. |
| Потрібен 3-D Secure | `4012 0018 0000 0016` | Пройдіть тестову перевірку. Виконуйте замовлення лише після того, як отримання сесії підтвердить успіх.     |

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

## Що охоплює пісочниця [#what-the-sandbox-environment-covers]

* **Hosted Checkout:** картки з наведеними вище тестовими картками. Кнопки гаманців залежать від налаштувань мерчанта, а також від
  пристрою та браузера клієнта, тому не розраховуйте, що вони з'являтимуться в кожному тесті.
* **Вбудовані платежі:** картки та підтримувані гаманці з Tapaya.js 0.2.0. Протестуйте доступність гаманців, скасування, зміни суми та перевірку на сервері. Apple Pay потребує зареєстрованого домену магазину. Див. [Embedded Checkout](/online/integration/embedded_checkout#add-apple-pay-and-google-pay).
* **Термін дії сесії:** сесії приймають нові платежі протягом 30 хвилин після створення. Для кожного незалежного тесту використовуйте новий `merchantOrderId`:
  замовлення можна оплатити лише один раз, а нова сесія для неоплаченого замовлення замінює
  попередню.

Щойно базовий сценарій працює, пройдіть [контрольний список QA](./checklist), який охоплює повторні спроби, втрачені відповіді
та клієнтів, які так і не повертаються.
