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

Интеграции · PrestaShop

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

Оплата в Bitcoin, USDT, Ethereum, Litecoin и TRON в PrestaShop 1.7.8 и 8: установите модуль, вставьте ключ — заказ оплачен, когда платёж подтверждён.

PrestaShop

PrestaShop 1.7.8 · 8.x

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

Модуль 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 недоступен или валюта не включена. Эта же страница из истории заказов покупателя потом показывает статус платежа в реальном времени.

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

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

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

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