Песочница и тестирование
Песочница - это та же платформа, что и производство, с тем же кодом, с поставщиками платежей. Используйте его для создания и тестирования вашей интеграции; никаких денежных движений.
Песочница vs Производство
| Песочница | Производство | |
|---|---|---|
| База URL | https://sandbox.4pay.online/api/v1 | https://4pay.online/api/v1 |
| Страница оплаты | https://pay.sandbox.4pay.online | https://pay.4pay.online |
| Полномочия | Отдельный ключ и организационный идентификатор | Отдельный ключ и организационный идентификатор |
| Реальные обвинения | Никогда | ⁇ Реальные деньги |
| Уэбхуки | Отправлено в терминал notify_url | Отправлено в терминал notify_url |
Окружающая среда является Отдельные развертывания на отдельных именах хостови верительные грамоты не несут поперек: ключ песочницы бессмыслен в производстве и наоборот. Ключи не имеют приставки Это отличает их друг от друга — держите их в отдельной конфигурации.
Внутри хозяина, env в запросе орган выбирает среду самой сделки, и он
is необходимый. A ?env=test параметр запроса только объемы поиска: создание, несущее только то, что
производит производство Сделка. Транзакции.
Получение учетных данных песочницы
Спросите оператора вашей платформы. Они создают партнерскую учетную запись для вас в организации песочницы и Совместим две ценности – API Ключ и организационный идентификатор. Оба необходимы на каждом Запрос.
Проведение тестовой транзакции
curl -X POST https://sandbox.4pay.online/api/v1/transactions \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_SANDBOX_KEY" \
-H "x-organization-id: YOUR_SANDBOX_ORGANIZATION_ID" \
-d '{
"params": {
"type": "payment",
"amount": "1000",
"currency": "USD",
"txid": "sandbox-test-001",
"env": "test",
"hosted": true,
"returnUrl": "https://yoursite.com/success",
"failUrl": "https://yoursite.com/fail"
}
}'
Возвращайся. widget_urlОткройте его в браузере, чтобы увидеть размещенную форму оплаты и оплатить
Одна из карточек ниже.
Тестовые карточки
Симулятор не классифицирует карту по ее характеристикам. BIN То, как это делают общественные шлюзы.
цельный кортеж - номер, CVV, держатель карты и истечение срока действия - против фиксированного списка.
От разницы отказываются с unexpected card.
| Номер карточки | CVV | держатель карточки | истекать | Результат |
|---|---|---|---|---|
2201382000000013 | 283 | IVAN IVANOV | 12 / 20 | ⁇ Поселения — chargingТогда charged Примерно через минуту |
2201382000000021 | 749 | IVAN IVANOV | 12 / 20 | ❌ rejected Поставщиком |
2201382000000047 | 480 | IVAN IVANOV | 12 / 20 | ↑ Settles, Then Returns (недоступная ссылка) |
2201382000000039 | 572 | IVAN IVANOV | 12 / 20 | ❌ failed |
2201382000000054 | 111 | IVAN IVANOV | 12 / 20 | Выплата застряла в payout_suspended |
Все остальное, включая номера тестов Visa и Mastercard, используемые другими шлюзами, заканчивается как
rejected с unexpected card.
"money_storage": {
"cardnumber": "2201382000000013",
"cvv": "PROVIDER_TEST_CVV",
"cardholder": "IVAN IVANOV",
"exp_year": "20",
"exp_month": "12"
}
Замечание exp_year - это две цифры, а держатель карты - верхний регистр.
SDK экспортировать их в виде констант;sandbox.CARD_CHARGE И друзья, и вы
Не перепечатывайте их.
Выплаты
| Полное поле | ценность | Результат |
|---|---|---|
bank_id | 200000000001 | Выплата оседает |
bank_id | 200000000002 | Выплата отказа |
customer (SBP) | John Doe | Сети; любое другое имя отказано. |
Зарядка без браузера
Для автоматизированных тестов пропустите страницу оплаты и зарядите карту сервер-сервер:
curl -X POST https://sandbox.4pay.online/api/v1/transactions \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_SANDBOX_KEY" \
-H "x-organization-id: YOUR_SANDBOX_ORGANIZATION_ID" \
-d '{
"params": {
"type": "payment",
"amount": "1000",
"currency": "USD",
"txid": "sandbox-test-002",
"env": "test",
"show_widget": false,
"money_storage": {
"cardnumber": "2201382000000013",
"cvv": "PROVIDER_TEST_CVV",
"cardholder": "IVAN IVANOV",
"exp_year": "20",
"exp_month": "12"
},
"returnUrl": "https://yoursite.com/success",
"failUrl": "https://yoursite.com/fail"
}
}'
Он возвращается charging и достигает charged самостоятельно в течение минуты. Оба перенаправляют URL-адреса
здесь требуется — без них создается и сразу же отклоняется оплата сервера серверу.
Пропуск реального номера карты через собственный сервер означает, что среда данных карты принадлежит вам. В песочнице это удобство для испытаний; в производстве используйте размещенный Поток, если вы уже не держите PCI DSS Аттестация.
Тестирование webhooks
Выберите локальный сервер с помощью туннеля:
ngrok http 3000
# → Forwarding: https://abc123.ngrok.io → localhost:3000
Попросите вашего оператора установить https://abc123.ngrok.io/webhooks/payment как notify_url на твоем
терминал песочницы, С помощью Webhook Secret Без одной платформы не будет подписи, а вы
не может отличить подлинную доставку от поддельной. Уэбхуки.
Что не моделируется
| Поведение конкретного поставщика | Железнодорожные причуды - варианты 3DS, перенаправления местных кошельков, время отключения банков - появляются только в производстве. |
| Сроки урегулирования | Платежи в песочнице оседают в считанные секунды; реальные рельсы занимают от нескольких минут до нескольких дней. |
| Сборы | Расчет платы работает, но с любыми ставками, настроенными организацией песочницы. |
Идти вживую
- Получите производственные учетные данные от вашего оператора — новый ключ и идентификатор организации.
- Изменить хозяина на
https://4pay.online. - Изменения
envВ органе по запросу на"prod". - Точка
notify_urlВ вашей конечной точке производства, со своей тайной. - Запустите один реальный платеж за небольшую сумму и верните его.
Шаги 2 и 3 Хозяин сам решает, с какой платформой вы разговариваете. env
Решает, на какой стороне этой платформы находится транзакция.
Ошибка, которая производит «тестовую» оплату на живом рельсе.