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

Интеграции · Magento 2

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

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

Magento 2

Magento Open Source 2.4.6+

  • Пакет Composer (.zip) — Архив публикуется со следующим релизом — в инструкции описана установка из репозитория.
  • Архив app/code (.zip) — Архив публикуется со следующим релизом — в инструкции описана установка из репозитория.
Настроить в кабинетеКлючи, URL вебхуков и загрузки для этой платформы — в кабинете, раздел «Интеграции».

Модуль 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 — её можно вернуть или оформить на неё новый заказ.

Эти правила одинаковы на всех платформах; остальные платформы для магазинов сравниваются в разделе криптовалюта для интернет-магазина.

Скриншоты

Способ оплаты CryptoLike в оформлении заказа Magento Luma

Страница статуса платежа после подтверждённой криптооплаты в Magento

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

Что видно Что сделать
Способа оплаты нет в корзине Включите его; сохраните 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>), подпись вебхука проверяется по сырому телу, события отсеиваются по event_id, а ответ 200 уходит только после записи заказа. README для разработчика со структурой модуля — в архиве.

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

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

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

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

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

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

Возврат делается вручную, потому что перевод в блокчейне нельзя отозвать. Нажмите Deny у платежа на проверке или отмените заказ, затем отправьте возврат выплатой из кабинета CryptoLike на адрес покупателя. Расчёт покажет комиссию платформы и комиссию сети; тарифы — на странице тарифов.

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

Платёж создаётся в валюте заказа (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 те же механизмы оформления заказа и оплаты, но там модуль ещё не проверялся — сначала запустите его на копии магазина в тестовом режиме.

Гайды и статьи

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

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

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