Чтобы протестировать приём криптовалюты в 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. Переключитесь на боевое окружение
Запуск повторяет ту же настройку в боевом окружении, только с боевыми значениями. Код остаётся прежним.
- В боевом кабинете создайте ключ
ck_live_с теми же правами. - Уберите тестовый URL: удалите
CRYPTOLIKE_API_URLили опцию SDK либо выключите «Тестовый режим» в плагине и верните URL API по умолчанию. - Зарегистрируйте эндпоинт вебхуков в боевом кабинете. Секрет подписи у него новый, поэтому обновите его на своём сервере.
- Создайте один небольшой реальный платёж и дождитесь статуса
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-ключ для этого не нужен.