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

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

Source: https://cryptolike.net/ru/guides/test-crypto-payments
Published: 2026-10-04 · Updated: 2026-10-04 · Author: CryptoLike team

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

Тестового режима внутри боевого окружения нет. Боевой API работает в основных сетях и сразу отклоняет тестовые ключи, поэтому забытая тестовая настройка даёт явную ошибку, а не принимает ненастоящие платежи без предупреждения. Что такое [тестовая сеть](https://cryptolike.net/ru/glossary/testnet) и почему её монеты ничего не стоят, объясняет глоссарий.

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

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](https://cryptolike.net/ru/docs/sdk), подпись запросов описана в разделе [аутентификация API](https://cryptolike.net/ru/docs/auth).

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

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

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

Эндпоинт должен ответить статусом 2xx за 10 секунд. Неудачную доставку CryptoLike повторяет через 1 минуту, 5 минут, 15 минут, 1 час, 6 часов и 24 часа. Проверяйте заголовок `X-Signature`, прежде чем доверять телу запроса, и отклоняйте метку времени, которая расходится с вашими часами больше чем на 5 минут в любую сторону. Код на четырёх языках — в [руководстве по проверке вебхуков](https://cryptolike.net/ru/guides/verify-crypto-payment-webhooks).

## 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` в эксплорере тестовой сети. Что каждый статус значит для денег, разобрано в статье [недоплата, переплата и поздние платежи](https://cryptolike.net/ru/blog/underpaid-crypto-payments).

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

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

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

Сторону магазина — статусы, остатки на складе и возвраты — покрывает [чек-лист запуска для интернет-магазина](https://cryptolike.net/ru/blog/ecommerce-crypto-checklist).

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

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

| 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». Сколько времени это займёт, зависит от того, как часто в тестовой сети появляются блоки.

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

Да. Создайте платёж в тестовом кабинете и откройте его ссылку на оплату — так же, как описано в руководстве по [ссылкам на оплату в криптовалюте](https://cryptolike.net/ru/guides/crypto-payment-link). API-ключ для этого не нужен.
