Разработчикам/Запуск

Sandbox

Sandbox — это отдельная тестовая копия CardV. В ней можно разработать и проверить интеграцию без настоящих денег и настоящих товаров.

См. также: README · Аутентификация

LiveSandbox
Базовый URL APIhttps://b2b.cardv.net/api/v1https://sandbox.cardv.net/api/v1
Личный кабинетhttps://b2b.cardv.net/portal/Тот же кабинет, переключитесь на Sandbox

#Как получить доступ

  1. Сначала CardV должен одобрить вашу компанию.
  2. Войдите в личный кабинет и выберите Sandbox в верхней панели. Войти в Sandbox напрямую нельзя.
  3. При первом входе CardV создаёт вам аккаунт в Sandbox. У него тот же Merchant ID и 1 000 USD тестовых денег.
  4. В Sandbox Owner создаёт и открывает API-ключ для Sandbox. Ключи от Live здесь не работают.
  5. По желанию настройте вебхук для Sandbox. У него свой секрет подписи.

#Что в Sandbox отдельное

  • У Sandbox свои ключи, кошелёк, заказы, вебхуки, список разрешённых IP и журнал аудита.
  • Настройки не переносятся. Ключи, вебхуки и список разрешённых IP настраивайте в каждой среде отдельно.
  • Заказы в Sandbox никогда не покупают настоящие товары. Тестовые коды активировать нельзя.
  • Тестовые деньги ничего не стоят. В Sandbox нельзя пополнить кошелёк, вывести деньги или перевести их в Live.
  • Если тестовые деньги закончились, попросите ещё у поддержки CardV.

#Тестовые деньги

Заказы расходуют тестовые деньги точно так же, как в Live расходуются настоящие. Деньги за неудачные тестовые заказы возвращаются так же. Движение тестовых денег видно на странице операций в кабинете.

#Тестовый каталог

  • Каталог Sandbox небольшой, в нём только тестовые товары.
  • ID товаров отличаются от Live. Всегда ищите их через GET/skus в Sandbox.
  • Никогда не переносите ID из Sandbox в настройки Live и наоборот.
  • Цены, наличие и скорость выдачи в Sandbox не такие, как в Live.

#Чек-лист тестирования

  • GET/account показывает ваш Merchant ID и "api_access_enabled": true.
  • GET/balance работает.
  • Вы умеете листать страницы GET/skus и заказываете только товары со статусом available.
  • Подписанный заказ проходит. Заказ с неверной подписью получает HTTP 403.
  • Вы передаёте expected_unit_price в каждой строке заказа.
  • Заказ товара с диапазоном и полем amount проходит (если такой товар есть в Sandbox).
  • Повторная отправка того же заказа (новый nonce, то же тело и тот же номер заказа) возвращает HTTP 200 с тем же order_id. Деньги списываются только один раз.
  • Тот же номер заказа с другим телом возвращает HTTP 400 с ошибкой external_order_id.
  • После тайм-аута ваш код повторно отправляет тот же заказ, а не придумывает новый номер.
  • Вы читаете deliveries[].display_fields и передаёте их покупателю.
  • Вы обрабатываете failed, refunded и partially_succeeded.
  • Ваш код для вебхуков проходит тестовый пример, а затем настоящий вебхук из Sandbox. Дубликаты пропускаются.
  • После HTTP 429 вы ждёте столько, сколько указано в Retry-After.
  • В ваших логах нет API-ключей, подписей, кодов и данных аккаунтов покупателей.

#Чек-лист перед запуском

  • Создайте API-ключ Live в кабинете Live. Сохраните его в рабочем хранилище секретов.
  • Поменяйте в настройках базовый URL на https://b2b.cardv.net/api/v1.
  • Загрузите каталог Live и сопоставьте свои товары с ID товаров в Live.
  • Пополните кошелёк Live в кабинете. Настройте оповещение о низком балансе.
  • По желанию добавьте IP своих серверов в список разрешённых IP для Live.
  • Настройте вебхук для Live и установите у себя его секрет подписи.
  • Уточните у CardV свои лимиты на заказы и лимит запросов.
  • Оформите один небольшой заказ в Live. Проверьте списание, коды и вебхук. Затем увеличивайте нагрузку постепенно.
  • Каждый день сверяйтесь по странице операций и выгрузкам в кабинете.
  • Включите двухэтапную проверку для всех Owner.

#Решение проблем

HTTP 403 error code: 1010

Сервер Sandbox находится за сетевым сервисом защиты. Некоторые HTTP-клиенты получают HTTP 403 с простым текстом error code: 1010. Запрос при этом не доходит до CardV, поэтому замена ключа или подписи не поможет.

  • Укажите понятный User-Agent.
  • Если ошибка не уходит, сообщите в поддержку CardV IP своего сервера, User-Agent и время.
  • Ни в коем случае не переходите вместо этого на тестирование в Live.

Вопросы по интеграции? Напишите на [email protected], указав ваш Merchant ID и ID заказа или запроса.