К содержимому

РазработчикамГайд

Тестовые платежи в криптовалюте: как проверить приём до запуска

Тестовый режим криптопроцессинга CryptoLike: отдельное окружение в тестовых сетях, ключи ck_test_, тестовые монеты, все статусы платежа и вебхуки до запуска.

Чтобы протестировать приём криптовалюты в CryptoLike, используйте тестовое окружение: отдельные кабинет и API, которые работают в тестовых сетях, где монеты ничего не стоят. Попросите у поддержки CryptoLike доступ и тестовый URL API, создайте там ключ ck_test_, укажите этот URL в коде или плагине и проведите тестовые платежи через все статусы. Только после этого переходите на боевой ключ.

Тестового режима внутри боевого окружения нет. Боевой API работает в основных сетях и сразу отклоняет тестовые ключи, поэтому забытая тестовая настройка даёт явную ошибку, а не принимает ненастоящие платежи без предупреждения. Что такое тестовая сеть и почему её монеты ничего не стоят, объясняет глоссарий.

Чем тестовое окружение отличается от боевого

CryptoLike запускает каждое окружение только в одном типе сетей: боевое — в основных сетях, тестовое — в тестовых. В какой сети пройдёт платёж, решает окружение, а не ключ.

Параметр Боевое окружение Тестовое окружение
Сети Основные сети, реальные средства Тестовые сети, монеты без ценности
Ключ ck_live_ Работает Работает, но двигает только тестовые монеты
Ключ ck_test_ Не выдаётся; каждый запрос отклоняется с 401 auth.test_key Работает
URL API Задан по умолчанию в SDK и плагинах Выдаёт поддержка CryptoLike
Кабинет Ваш боевой аккаунт Отдельный аккаунт в тестовом кабинете
Страница оплаты, статусы, вебхуки Как в документации Так же; подтверждения считаются по тем же правилам
Ссылки на эксплорер рядом с транзакцией Открывают перевод Открывают эксплорер основной сети, где тестового перевода нет («not found»)

Ключи не переходят между окружениями: ключ одного окружения получает в другом 401 auth.invalid_key, какой бы префикс у него ни был.

1. Получите доступ к тестовому окружению

Напишите в поддержку CryptoLike и попросите доступ к тестовому окружению. Вы получите вход в его кабинет и тестовый URL API. Тестовые монеты ничего не стоят, и перевести их в основную сеть нельзя.

Тестовые платежи проводите в активах Ethereum и TRON: ETH, TRX, токенах USDT и USDC. Их тестовые сети публичные: кошелёк, переключённый на тестовую сеть, может заплатить, а подтверждения приходят сами. Bitcoin и Litecoin в тестовом окружении работают не в публичной тестовой сети, и обычный кошелёк их оплатить не сможет. Статусы, вебхуки и страница оплаты одинаковы для всех активов, так что сценарии ниже проверяют интеграцию полностью.

Тестовые адреса Bitcoin и Litecoin начинаются с другого префикса, чем в основной сети. В Ethereum и TRON тестовый адрес выглядит точно так же, как обычный. Поэтому различайте окружения по кабинету и URL API, а не по адресу.

2. Создайте тестовый API-ключ

В тестовом кабинете откройте Разработчикам → API-ключи → «Создать ключ» и в поле «Режим» выберите «Тестовый». Форма поясняет: «Это окружение работает в тестовых сетях: и тестовые, и боевые ключи двигают только тестовые монеты». Первый ключ в этом кабинете по умолчанию тестовый и называется «Первый тестовый ключ».

Дайте ключу те же права, что будут у боевой интеграции, например create_invoice и read. Секрет храните только на своём сервере: он показывается один раз. В боевом кабинете вариант «Тестовый» неактивен, а на попытку создать такой ключ через API приходит 400 validation_error с полем mode.

3. Укажите в интеграции тестовый URL API

Каждый клиент CryptoLike берёт адрес API из одной настройки. Смена окружения — это другие URL и ключ, а не другой код.

Клиент Куда вписать URL
TypeScript SDK Опция baseUrl
Python SDK Опция base_url
Go SDK Options.BaseURL
PHP SDK Опция 'base_url'
Любой SDK или curl Переменная окружения CRYPTOLIKE_API_URL
WooCommerce, OpenCart, PrestaShop, Magento Включённый «Тестовый режим» и поле «URL API»

Без явного URL SDK обращаются к https://api.cryptolike.net, то есть к боевому API. С ключом ck_test_ это означает 401 auth.test_key на первом же запросе — так ошибка напоминает указать URL. Остальные переменные перечислены в справочнике SDK, подпись запросов описана в разделе аутентификация API.

В плагине магазина включите «Тестовый режим» и вставьте тестовый URL API. Плагин сверяет префикс ключа с режимом («Для тестового режима нужен ключ ck_test_, для рабочего — live-ключ»), показывает в настройках значок «Тестовый режим» и пишет покупателям рядом со способом оплаты: «Тестовый режим: тестовые монеты, без реальных средств». Настройка для каждой CMS — на странице WooCommerce и на страницах других интеграций.

4. Проверьте эндпоинт вебхуков тестовым событием

Зарегистрируйте эндпоинт в тестовом кабинете в разделе Разработчикам → Вебхуки и нажмите «Отправить тестовое событие». CryptoLike ставит в очередь событие ping: оно подписывается и повторяется так же, как остальные, а ответ вашего сервера появляется в журнале доставок.

Эндпоинт должен ответить статусом 2xx за 10 секунд. Неудачную доставку CryptoLike повторяет через 1 минуту, 5 минут, 15 минут, 1 час, 6 часов и 24 часа. Проверяйте заголовок X-Signature, прежде чем доверять телу запроса, и отклоняйте метку времени, которая расходится с вашими часами больше чем на 5 минут в любую сторону. Код на четырёх языках — в руководстве по проверке вебхуков.

5. Проведите тестовые платежи через все статусы

Один успешный платёж почти ничего не доказывает. Создайте по платежу на каждый сценарий в активе Ethereum или TRON, оплатите его из кошелька, переключённого на тестовую сеть, и проверьте, как ваша система реагирует на каждый статус и вебхук.

Сценарий Как воспроизвести Что проверить
Полная оплата Отправьте точную сумму invoice.pending, затем invoice.paid; заказ выполняется один раз, по paid
Недоплата и доплата Отправьте меньше, затем остаток на тот же адрес invoice.underpaid, оставшаяся сумма, затем paid
Истёкший платёж Создайте платёж с коротким временем на оплату и не платите invoice.expired; заказ снимается с резерва
Отмена Отмените платёж, пока он в статусе new Заказ закрыт на вашей стороне
Переплата Отправьте больше, чем нужно Статус paid и overpaid_amount больше нуля
Поздняя оплата Оплатите платёж, который уже истёк late_payment: true и invoice.late_payment; статус не меняется
Повтор запроса Повторите POST /v1/invoices с тем же Idempotency-Key и тем же телом Возвращается тот же платёж, дубля нет

Минимальное время на оплату через API — 60 секунд, так что сценарий с истечением проверяется быстро. Страница оплаты называет сеть так же, как в боевом окружении («Ethereum», «TRON»), и не пишет, что сеть тестовая. Поэтому не отправляйте тестовые ссылки реальным клиентам. Ссылки на транзакцию на странице оплаты и в кабинете ведут в эксплореры основной сети: там тестового перевода нет («not found»), даже если платёж уже paid. Ориентируйтесь на статус в кабинете и вебхуки или ищите txid в эксплорере тестовой сети. Что каждый статус значит для денег, разобрано в статье недоплата, переплата и поздние платежи.

6. Переключитесь на боевое окружение

Запуск повторяет ту же настройку в боевом окружении, только с боевыми значениями. Код остаётся прежним.

  1. В боевом кабинете создайте ключ ck_live_ с теми же правами.
  2. Уберите тестовый URL: удалите CRYPTOLIKE_API_URL или опцию SDK либо выключите «Тестовый режим» в плагине и верните URL API по умолчанию.
  3. Зарегистрируйте эндпоинт вебхуков в боевом кабинете. Секрет подписи у него новый, поэтому обновите его на своём сервере.
  4. Создайте один небольшой реальный платёж и дождитесь статуса paid.

Сторону магазина — статусы, остатки на складе и возвраты — покрывает чек-лист запуска для интернет-магазина.

Ошибки и что с ними делать

Почти каждая ошибка в тестовом окружении возникает из-за того, что два окружения перепутаны. Код ошибки подсказывает, какая половина настроена неверно.

HTTP · код или сообщение Что произошло Что сделать
401 auth.test_key Ключ ck_test_ попал в боевой API Укажите тестовый URL API или используйте боевой ключ в боевом окружении.
400 validation_error, поле mode Тестовый ключ запрошен в боевом окружении Создайте его в тестовом кабинете.
401 auth.invalid_key Ключ принадлежит другому окружению Используйте ключ того окружения, на которое указывает URL.
«Для тестового режима нужен ключ ck_test_, для рабочего — live-ключ.» Режим плагина и префикс ключа не совпадают Подберите ключ под переключатель «Тестовый режим».
«URL API должен начинаться с https://.» В поле «URL API» плагина нет https:// Вставьте тестовый URL API целиком.
409 на «Отправить тестовое событие» Эндпоинт выключен Включите его и отправьте событие ещё раз.
Ваш сервер отклоняет вебхуки Часы расходятся больше чем на 5 минут или секрет не тот Синхронизируйте часы сервера; используйте секрет тестового эндпоинта.

Вопросы и ответы

Есть ли у CryptoLike sandbox для криптоплатежей?

Да, в виде отдельного тестового окружения, а не переключателя внутри боевого. У него свой кабинет и свой URL API, и работает оно в тестовых сетях. Поэтому платежи, подтверждения и вебхуки ведут себя так же, как в боевом окружении, но без реальных денег. Доступ даёт поддержка CryptoLike. Платежи там проводятся в активах Ethereum и TRON, у которых публичные тестовые сети.

Можно ли использовать ключ ck_test_ с боевым API?

Нет. Боевое окружение работает в основных сетях и отклоняет тестовые ключи на каждом запросе, включая чтение, с ответом 401 auth.test_key и ссылкой на документацию. Тестовый ключ работает только в тестовом окружении и только вместе с его URL API.

Где взять тестовые монеты?

Из публичных кранов (faucet) тестовых сетей или у поддержки CryptoLike вместе с доступом к тестовому окружению — для активов Ethereum и TRON, на которых вы тестируете. Тестовые монеты ничего не стоят и существуют только в тестовых сетях, поэтому их нельзя продать или перевести в основную сеть.

Подтверждения в тестовых сетях приходят быстрее?

Правила в обоих окружениях одни и те же: платёж ждёт в pending, пока не наберёт порог подтверждений своего актива, и только потом засчитывается. Сам порог — настройка каждого окружения, поэтому в тестовом окружении число может отличаться от боевого; страница оплаты показывает его как «Подтверждение n/N». Сколько времени это займёт, зависит от того, как часто в тестовой сети появляются блоки.

Можно ли протестировать ссылки на оплату без кода?

Да. Создайте платёж в тестовом кабинете и откройте его ссылку на оплату — так же, как описано в руководстве по ссылкам на оплату в криптовалюте. API-ключ для этого не нужен.

Термины на странице

Читать дальше

Начните с тестового платежа

Создайте аккаунт, попросите у поддержки доступ к тестовой среде и посмотрите, как платёж проходит путь от pending до paid в тестовой сети.