# Приём криптовалюты в Magento 2

> Приём Bitcoin, USDT, Ethereum, Litecoin и TRON в Magento 2.4.6+: установите модуль, вставьте ключ — счёт Magento создаётся после подтверждения платежа.

Source: https://cryptolike.net/ru/integrations/magento
Updated: 2026-10-11

Модуль CryptoLike добавляет криптовалюту в оформление заказа Magento 2 и создаёт счёт (invoice) Magento только после подтверждения платежа в блокчейне. Покупатели платят в Bitcoin, USDT, Ethereum, Litecoin, TRON или USDC, а команда работает с привычными состояниями заказа, включая Accept и Deny для платежей, по которым нужно решение.

## Требования

Модуль `CryptoLike_Payment` работает на Magento 2.4.6 и новее с PHP от 8.1 до 8.4 и оформлением заказа Luma. Он построен на Magento Payment Gateway и проверен на реальных классах Magento 2.4, по стандарту кода Magento 2 и в живом прогоне на Mage-OS 3.5 — дистрибутиве Magento Open Source. PHP SDK CryptoLike уже внутри модуля: других пакетов и ключа Marketplace не нужно.

| Что | Поддержка |
|---|---|
| Magento | 2.4.6 и новее (Magento Open Source) |
| PHP | 8.1 – 8.4 |
| Оформление заказа | Luma |
| Установка | Composer-пакет или архив для `app/code` |
| Мультисайт | Настройки на уровне сайта (website); у каждого может быть свой аккаунт CryptoLike |

## Что умеет модуль

При «Оформить заказ» модуль создаёт платёж CryptoLike и переводит заказ в `pending_payment`. Дальше заказ двигают подписанные вебхуки: подтверждённый платёж — это `processing` и счёт Magento (оплата фиксируется офлайн, ID транзакции — ID платежа CryptoLike), а деньги, по которым нужен человек, уходят в `payment_review`.

- **Переадресация или встроенная страница.** После оформления покупатель уходит на страницу оплаты CryptoLike или платит на странице статуса заказа.
- **Accept / Deny для проверки.** Поздний платёж, недоплата после срока и отмена сетью показывают кнопки Magento **Accept Payment** и **Deny Payment**.
- **Зашифрованные секреты.** API-секрет и секрет вебхука хранятся с ключом шифрования Magento и не попадают в `config:show` и `app:config:dump`.
- **Один платёж на заказ.** Двойной клик, перезагрузка или «Создать новый платёж» возвращают тот же открытый платёж.
- **Выбор монеты на странице оплаты.** Покупатель выбирает монету там; поле **Монеты на странице оплаты** может сузить список, а «ничего не выбрано» значит все монеты, доступные для инвойсов в вашем аккаунте.
- **Задача cron** `cryptolike_reconcile` перечитывает открытые платежи раз в 15 минут.

## 1. Установите модуль

Через Composer (рекомендуется): положите Composer-архив с этой страницы в папку на сервере, например `/var/www/packages`, и выполните в корне Magento:

```bash
composer config repositories.cryptolike artifact /var/www/packages
composer require cryptolike/module-payment:1.0.0
bin/magento module:enable CryptoLike_Payment
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
```

Без Composer распакуйте архив для `app/code` в корень Magento (появится `app/code/CryptoLike/Payment`) и выполните те же команды `bin/magento`. В режиме production также разверните статический контент.

## 2. Подключите аккаунт CryptoLike

В кабинете CryptoLike откройте **Разработчикам → API-ключи → Создать ключ** с правами `create_invoice` и `read` и вставьте ID ключа и секрет в **Stores → Configuration → Sales → Payment Methods → CryptoLike — crypto payments**. Скопируйте там **URL вебхука** (`https://ваш-магазин/cryptolike/webhook/`, свой для каждого store view), добавьте его в кабинете в **Разработчикам → Вебхуки → Добавить эндпоинт** со всеми событиями `invoice.*` и вставьте секрет эндпоинта в поле **Секрет вебхука**.

## 3. Включите способ оплаты и проверьте

Переключите **Enable crypto payments** в Yes и нажмите **Save Config**. **Проверить соединение** покажет «Соединение установлено: доступно валют — N». До запуска проверьте всё с ключом `ck_test_` и тестовым адресом в поле **URL API** (по умолчанию там рабочий; тестовый URL даст поддержка CryptoLike): тестовые ключи работают с тестовыми сетями, в корзине под способом оплаты видна строка тестового режима, а рабочий ключ в тестовом режиме не сохранится.

## Как меняется статус заказа

| Платёж | Заказ Magento (state) | Что видит покупатель |
|---|---|---|
| Создан при оформлении | `pending_payment` | «Ожидаем оплату.» и страница оплаты |
| Перевод обнаружен | Без изменений, комментарий с ID транзакции | «Платёж обнаружен. Ожидаем подтверждения.» |
| Подтверждён | `processing` и счёт; виртуальный заказ — `complete` | «Платёж подтверждён.» |
| Частичная оплата до срока | `holded`, комментарий с недостающей суммой | Сколько доплатить, на тот же адрес и до какого срока |
| Доплата закрыла сумму | Снят с удержания, `processing` и счёт | «Платёж подтверждён.» |
| Поздний платёж или недоплата после срока, второй платёж, отмена сетью, изменённая сумма | `payment_review` с комментарием, что решить | Сообщение для этого случая, например «Платёж получен. Магазин проверяет его и свяжется с вами.» |
| Время истекло | `canceled` (остатки возвращаются) или без изменений (настройка) | «Время оплаты истекло. Создайте новый платёж.» |

Время на оплату — из настроек аккаунта (по умолчанию 30 минут), если не задано другое. Отменённый заказ Magento открыть заново не может, поэтому деньги, пришедшие за него, оставляют заказ `canceled` с комментарием; сумма лежит на вашем балансе CryptoLike — её можно вернуть или оформить на неё новый заказ.


Эти правила одинаковы на всех платформах; остальные платформы для магазинов сравниваются в разделе [криптовалюта для интернет-магазина](https://cryptolike.net/ru/use-cases/online-stores).
## Скриншоты

![Способ оплаты CryptoLike в оформлении заказа Magento Luma](https://cryptolike.net/integrations/media/magento/2-checkout.png)

![Страница статуса платежа после подтверждённой криптооплаты в Magento](https://cryptolike.net/integrations/media/magento/3-status-paid.png)

## Если что-то не работает

| Что видно | Что сделать |
|---|---|
| Способа оплаты нет в корзине | Включите его; сохраните ID ключа, секрет и секрет вебхука для этого сайта; префикс ключа должен совпадать с режимом; выполните `bin/magento cache:flush`. |
| После оплаты заказ остаётся Pending Payment | В настройках пусто поле «Последний проверенный вебхук»: вебхук не доходит. Проверьте доступ по `https://`, пропустите `POST /cryptolike/webhook/` через WAF или CDN без проверок и выключите режим обслуживания. Для проверки раз в 15 минут должен работать cron Magento. |
| «Не удалось соединиться: auth.…» | `auth.invalid_key` или `auth.invalid_signature` — неверный ID ключа или секрет. `auth.ip_not_allowed` — в белом списке IP ключа нет вашего сервера. `auth.test_key` — ключ `ck_test_` с URL API по умолчанию: тестовому режиму нужен ещё тестовый URL API. |
| Встроенная страница не загружается | Добавьте адрес магазина в кабинете: **Настройки → Интеграция → Разрешённые origin**; в собственной CSP разрешите хост страницы оплаты. |

Журнал — `var/log/cryptolike.log`, в нём нет секретов, подписей, тел вебхуков и данных покупателей.

## Разработчикам

Модуль следует общему контракту плагинов CryptoLike: платёж создаётся с сервера, на заказ — один открытый платёж (`idempotency_by_order_id`; вне магазина по умолчанию `order_id` в API — `<store_id>-<increment_id>`), [подпись вебхука](https://cryptolike.net/ru/docs/webhooks) проверяется по сырому телу, события отсеиваются по `event_id`, а ответ `200` уходит только после записи заказа. README для разработчика со структурой модуля — в архиве.

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

### Что будет, если покупатель заплатит меньше суммы заказа?

Заказ переходит в `holded` с комментарием о недостающей сумме, а покупатель видит, сколько отправить на тот же адрес до срока. Доплата вовремя снимает удержание, и заказ становится `processing` со счётом. После срока заказ уходит в `payment_review`, где вы нажимаете Accept или Deny.

### Что если покупатель заплатил после окончания срока?

Если заказ отменился по истечении срока, он остаётся `canceled`: Magento не открывает отменённые заказы. Комментарий покажет, сколько пришло, а деньги будут на вашем балансе. Чтобы заказы оставались открытыми, выберите «Оставить заказ в ожидании оплаты» — тогда поздний платёж попадёт в `payment_review` с Accept и Deny.

### Как вернуть деньги покупателю?

Возврат делается вручную, потому что перевод в блокчейне нельзя отозвать. Нажмите Deny у платежа на проверке или отмените заказ, затем отправьте возврат выплатой из кабинета CryptoLike на адрес покупателя. Расчёт покажет комиссию платформы и комиссию сети; тарифы — на странице [тарифов](https://cryptolike.net/ru/pricing).

### В какой валюте магазина можно принимать оплату?

Платёж создаётся в валюте заказа (USD, EUR, UAH, GBP или CAD), а CryptoLike пересчитывает её в монету по курсу, зафиксированному до конца срока оплаты. Валюта должна быть включена для платежей в аккаунте. В мультисайте у каждого сайта (website) могут быть свой аккаунт CryptoLike и свои валюты.

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

Да. Включите тестовый режим, сохраните ключ `ck_test_` и тестовый URL API, который даст поддержка CryptoLike. Тестовые ключи работают с тестовыми сетями, а тестовые монеты ничего не стоят. В настройках виден значок «Тестовый режим», в корзине — строка тестового режима. Рабочий ключ в тестовом режиме и тестовый в рабочем не сохраняются.

### Работает ли модуль с Adobe Commerce?

Это стандартный платёжный модуль Magento 2, проверенный на Magento Open Source 2.4 (дистрибутив Mage-OS). У Adobe Commerce те же механизмы оформления заказа и оплаты, но там модуль ещё не проверялся — сначала запустите его на копии магазина в тестовом режиме.
