Интеграции · PrestaShop
Приём криптовалюты в PrestaShop
Оплата в Bitcoin, USDT, Ethereum, Litecoin и TRON в PrestaShop 1.7.8 и 8: установите модуль, вставьте ключ — заказ оплачен, когда платёж подтверждён.
PrestaShop
- Модуль (.zip) — Архив публикуется со следующим релизом — в инструкции описана установка из репозитория.
Модуль CryptoLike добавляет в PrestaShop способ «Оплатить криптовалютой» и переводит заказ в «Платёж принят» только после подтверждения платежа в блокчейне. Дальше PrestaShop, как обычно, фиксирует оплату и, если вы их используете, счёт. Покупатели платят в Bitcoin, USDT, Ethereum, Litecoin, TRON или USDC со своего кошелька.
Требования
Модуль поддерживает PrestaShop 8.x, минимальная заявленная версия — 1.7.8. Полная проверка проводилась на PrestaShop 8.1 с PHP 8.1; для 1.7.8 нужен PHP 7.4 или новее. Магазин должен быть доступен из интернета по https://, чтобы доходили вебхуки; эндпоинту вебхука не нужны сессия и cookie, и он отвечает даже в режиме обслуживания.
| Что | Поддержка |
|---|---|
| PrestaShop | 8.x; 1.7.8 — заявленный минимум |
| PHP | 7.4 и новее (проверено на 8.1) |
| Валюты, страны, перевозчики | После установки включены все; лишнее снимите в Оплата → Настройки |
| Валюта магазина | USD, EUR, UAH, GBP или CAD (все пять включены для каждого аккаунта по умолчанию) |
Что умеет модуль
Модуль добавляет три собственных состояния заказа: Awaiting crypto payment (страница оплаты открыта или перевод ждёт подтверждений), Crypto underpaid (частичная оплата, которую покупатель ещё может доплатить) и Crypto payment review (деньги, по которым нужно ваше решение). Оплаченные заказы переходят в стандартный «Платёж принят», истёкшие и отменённые — в «Отменён»; любое состояние можно поменять в настройках.
- Переадресация или встроенная страница. Покупатель уходит на страницу оплаты CryptoLike или видит её на странице статуса заказа в магазине.
- Страница статуса для покупателя — из его истории заказов: «Платёж обнаружен. Ожидаем подтверждения.», «Платёж подтверждён.», сколько доплатить после частичной оплаты и кнопка Создать новый платёж, если срок истёк.
- Личное сообщение в заказе на каждом шаге: платёж создан, ID транзакции, оплаченная сумма, переплата, что сделать при проверке.
- Один открытый платёж на заказ. Перезагрузка или повторный клик открывают ту же страницу; если сумму заказа изменили, старая страница отменяется и создаётся новая.
- Выбор монеты — на странице оплаты CryptoLike или на шаге оплаты в магазине. Монеты к оплате ограничивают оба варианта; на странице оплаты «ничего не выбрано» значит все монеты, доступные для инвойсов в вашем аккаунте.
- URL сверки для cron на сервере — на случай, если вебхук не дошёл.
1. Установите модуль
В админке откройте Модули → Менеджер модулей → Загрузить модуль, выберите архив модуля с этой страницы и нажмите Настроить. Можно и распаковать zip в modules/ и установить CryptoLike — crypto payments из списка. Модуль создаст свои таблицы и три состояния заказа.
2. Подключите аккаунт CryptoLike
В кабинете CryptoLike откройте Разработчикам → API-ключи → Создать ключ с правами create_invoice и read и вставьте ID ключа и секрет в настройки модуля — секрет показывается один раз. Скопируйте со страницы настроек URL вебхука (https://магазин/module/cryptolike/webhook), добавьте его в кабинете в Разработчикам → Вебхуки → Добавить эндпоинт со всеми восемью событиями invoice.* и вставьте секрет эндпоинта в поле Секрет вебхука.
3. Проверьте соединение и запускайте
Нажмите Проверить соединение — «Соединение установлено: доступно валют — N». В Оплата → Настройки снимите валюты, страны и перевозчиков, где криптовалюта не нужна. Добавьте URL сверки из настроек в cron сервера с интервалом 15 минут. Сначала проверьте всё с ключом ck_test_ и тестовым адресом в поле URL API (по умолчанию там рабочий; тестовый URL даст поддержка CryptoLike): тестовые ключи работают с тестовыми сетями, в корзине видно «Тестовый режим: тестовые монеты, без реальных средств.», а рабочий ключ в тестовом режиме не сохранится.
Как меняется статус заказа
| Платёж | Состояние заказа (по умолчанию) | Что видит покупатель на странице статуса |
|---|---|---|
| Создан | Awaiting crypto payment | Кнопка страницы оплаты или встроенная страница |
| Перевод обнаружен | Awaiting crypto payment | «Платёж обнаружен. Ожидаем подтверждения.» |
| Подтверждён | Платёж принят | «Платёж подтверждён.» |
| Частичная оплата до срока | Crypto underpaid | Сколько доплатить, на тот же адрес и до какого времени |
| Недоплата после срока, поздний платёж, деньги за отменённый заказ, отмена сетью после оплаты, изменённая сумма | Crypto payment review | Сообщение для этого случая, например «Платёж получен. Магазин проверяет его и свяжется с вами.» |
| Время истекло | Отменён или остаётся в ожидании (настройка) | «Время оплаты истекло. Создайте новый платёж.» |
Время на оплату — из настроек аккаунта (по умолчанию 30 минут), если в модуле не задано другое. На странице заказа в админке виден и текущий платёж: ID, состояние, срок и ссылка на страницу оплаты.
Эти правила одинаковы на всех платформах; остальные платформы для магазинов сравниваются в разделе криптовалюта для интернет-магазина.
Если что-то не работает
| Что видно | Что сделать |
|---|---|
| Способа оплаты нет в корзине | Сохраните ID ключа, секрет и секрет вебхука; префикс ключа должен совпадать с режимом; валюта корзины должна быть отмечена в Оплата → Настройки. |
| После оплаты заказ остаётся «Awaiting crypto payment» | Откройте в кабинете доставки эндпоинта: 401 — секрет вебхука не совпадает; 404 или 503 — адрес или прокси/WAF. За CDN разрешите POST на URL вебхука без проверок. |
| «Не удалось соединиться: auth.…» | auth.invalid_key или auth.invalid_signature — неверный ID ключа или секрет. auth.ip_not_allowed — в белом списке IP ключа нет вашего сервера. auth.test_key — ключ ck_test_ с URL API по умолчанию: тестовому режиму нужен ещё тестовый URL API. |
Вебхук ответил 503 not_configured |
Не заполнен секрет вебхука — вставьте его и сохраните. |
Журнал — в Расширенные параметры → Журналы, тип объекта Cryptolike, без секретов, подписей, тел вебхуков и данных покупателей. При удалении стираются настройки, оба секрета и таблицы модуля; три состояния заказа скрываются, но остаются, потому что их используют старые заказы.
Разработчикам
Модуль реализует общий контракт плагинов CryptoLike: платёж создаётся с сервера, на заказ — один открытый платёж (idempotency_by_order_id), подпись вебхука проверяется по сырому телу, события отсеиваются по event_id, заказ блокируется на время записи, а ответ 200 уходит только после неё. README для разработчика со структурой модуля — в архиве.
Вопросы и ответы
Что будет, если покупатель заплатит меньше суммы заказа?
Заказ переходит в Crypto underpaid, а на странице статуса покупатель видит, сколько доплатить, на какой адрес и до какого времени. Доплата до срока переводит заказ в «Платёж принят». После срока заказ уходит в Crypto payment review, а личное сообщение в заказе подскажет, что решить.
Что если покупатель заплатил после окончания срока?
CryptoLike зачисляет деньги на ваш баланс, а заказ переходит в Crypto payment review, а не в «Платёж принят». Сумма видна в личном сообщении к заказу. Выполнить заказ или вернуть деньги — решаете вы: модуль сам такой заказ оплаченным не отмечает.
Как вернуть деньги покупателю?
Магазин не может отозвать перевод в блокчейне, поэтому возврат делается вручную. Попросите у покупателя адрес и отправьте сумму выплатой из кабинета CryptoLike. До подтверждения расчёт покажет комиссию платформы и комиссию сети; тарифы — на странице тарифов.
В какой валюте магазина можно принимать оплату?
Модуль создаёт платёж в валюте корзины (USD, EUR, UAH, GBP или CAD), а CryptoLike пересчитывает её в монету по курсу, зафиксированному до конца срока оплаты. Если аккаунт валюту не принимает, платёж не создастся с ошибкой «Оплата криптовалютой недоступна» — снимите такую валюту в «Оплата → Настройки».
Можно ли проверить модуль без реальных денег?
Да. Включите тестовый режим, сохраните ключ ck_test_ и тестовый URL API, который даст поддержка CryptoLike. Тестовые ключи работают с тестовыми сетями, тестовые монеты ничего не стоят. На странице настроек остаётся плашка «Тестовый режим», в корзине — «Тестовый режим: тестовые монеты, без реальных средств.». Рабочий ключ в тестовом режиме форма не примет.
Что увидит покупатель, если страницу оплаты не удалось создать?
Заказ останется в Awaiting crypto payment, а покупатель попадёт на страницу статуса с причиной и кнопкой Создать новый платёж. Так бывает, если API недоступен или валюта не включена. Эта же страница из истории заказов покупателя потом показывает статус платежа в реальном времени.
Гайды и статьи
- Как принимать криптовалюту на сайте: 4 способаПриём криптовалюты на сайте через CryptoLike: плагин CMS, API или SDK с виджетом, ссылка на оплату, коннектор Хорошоп. Шаги, сравнение и ошибки.
- Недоплата, переплата и поздний платёж: что происходит и что делатьЧто делает CryptoLike, если клиент заплатил меньше, больше, позже срока или не успел оплатить: статусы, вебхуки и следующий шаг для каждого случая.
- Криптопроцессинг: что это и как он работаетЧто такое криптопроцессинг и как проходит платёж: страница оплаты, обнаружение перевода, подтверждения, подписанный вебхук, баланс и выплата — шаги в CryptoLike.
Термины на странице
Начните с тестового платежа
Создайте аккаунт, попросите у поддержки доступ к тестовой среде и посмотрите, как платёж проходит путь от pending до paid в тестовой сети.