Связаться
Payments · WordPress

Оплата частями ПриватБанк, monobank и A-Bank для WooCommerce

Скачать бесплатно
Версия
v1.1.0
Платформа
WordPress
Оплата частями ПриватБанк, monobank и A-Bank для WooCommerce

Что включено в лицензии

Функция Free Pro
Три банка в одном способе оплаты: ПриватБанк, monobank и A-Bank
A-Bank: заявка с подтверждением в приложении Abank24
A-Bank: подтверждение выдачи, отмена и возврат
Покупатель сам выбирает банк в чекауте
ПриватБанк: программы II, PP, IA и PB — под ваш договор
ПриватБанк: 2–25 платежей, страница банка с подтверждением
monobank: 3–25 платежей, подтверждение в приложении без редиректа
monobank: страница ожидания сама доводит заказ до успеха
Подсказка «примерно N грн в месяц» от итога заказа
Классический чекаут и чекаут на блоках
Совместимость с HPOS — отдельными таблицами заказов
Проверка подписи каждого уведомления обоих банков
Сверка статуса с банком, а не доверие уведомлению
Повторное уведомление ничего не дублирует
Оплаченный заказ нельзя отправить в банк повторно
Выбор количества платежей покупателем в чекауте
ПриватБанк: резерв с подтверждением — банк удерживает, вы списываете
monobank: подтверждение выдачи товара вручную или по статусу
monobank: полный и частичный возврат
Журнал заявок по обоим банкам
Тестовые режимы на публичных песочницах обоих банков

Оплата частями ПриватБанк, monobank и A-Bank — один способ оплаты в WooCommerce, в котором покупатель сам выбирает банк. ПриватБанк ведёт его на свою страницу и даёт 2–25 платежей, monobank не ведёт никуда вообще: пуш в приложении, подтверждение, и покупатель уже на странице благодарности. Магазин в обоих случаях получает всю сумму сразу.

Это не «кнопка рассрочки» с баннеров. Это полный цикл: проверка подписи каждого уведомления, сверка статуса с банком, резерв с подтверждением, подтверждение выдачи товара и возвраты.

Зачем это магазину

Рассрочка — самый дешёвый способ поднять средний чек в категориях, где человек колеблется из-за суммы: техника, мебель, велосипеды, инструмент, детские товары. Вместо «дорого, подумаю» покупатель видит «примерно 1 200 грн в месяц» и покупает сегодня.

Магазин при этом ничего не кредитует и ничем не рискует: банк выплачивает всю сумму заказа сразу, а платежи покупателя дальше — это уже отношения покупателя с банком.

Проблема обычно не в желании подключить рассрочку, а в том, что у ПриватБанка и monobank разные API, разные сценарии и разная логика комиссий. Поэтому магазины либо подключают что-то одно, либо держат два разных модуля, которые не знают друг о друге. Здесь оба банка — один способ оплаты с одним журналом.

Как это выглядит для покупателя

В чекауте появляется один способ оплаты — «Оплата частями». Выбрав его, покупатель видит выбор банка: ПриватБанк или monobank. Рядом показывается подсказка «примерно N грн в месяц», посчитанная от итога заказа, а не от цены одного товара.

ПриватБанк. После оформления покупателя перебрасывает на страницу банка, там он выбирает количество платежей и подтверждает. Дальше возвращается в магазин.

monobank. Никуда не перебрасывает. Покупатель получает пуш в приложении monobank и подтверждает там, а магазин в это время показывает страницу ожидания, которая сама доводит заказ до успеха, как только банк ответит. Для покупателя это выглядит так, будто оплата прошла прямо на сайте.

Работает и классический чекаут, и чекаут на блоках — отдельной настройки для блоков не нужно.

Оплата частями ПриватБанк и monobank в чекауте WooCommerce
В чекауте это один способ оплаты — банк покупатель выбирает уже внутри

A-Bank. Так же, как monobank, никуда не перебрасывает: покупатель указывает номер телефона, получает запрос в приложении Abank24 и подтверждает там, а магазин ждёт на своей странице и сам доводит заказ до результата. Уведомления A-Bank не подписаны, поэтому модуль меняет заказ только по ответу банка на запрос статуса.

Выбор A-Bank в оплате частями на чекауте WooCommerce
A-Bank выбирается в том же способе оплаты: покупатель вводит номер телефона для запроса в Abank24.

Что получает админ

В настройках способа оплаты включаются нужные банки. Можно оставить один, можно оба — покупатель увидит ровно то, что вы включили.

Для ПриватБанка выбирается программа под ваш договор: II, PP, IA или PB. От программы зависит, кто платит комиссию банку: в II и IA — магазин, в PP и PB — покупатель. Модуль не решает это за вас, он просто работает по той программе, которая у вас в договоре.

Для monobank задаётся store-id и секретный ключ, и выбирается диапазон платежей в пределах 3–25.

В Pro-версии к этому добавляется журнал заявок по обоим банкам: кто, когда, на сколько платежей, в каком состоянии заявка и что ответил банк.

Настройки оплаты частями ПриватБанк и monobank для WooCommerce
Оба банка на одном экране: ключи, количество платежей, статусы и адреса колбэков

Как это работает — шаг за шагом

1. Покупатель оформляет заказ и выбирает банк в чекауте.

2. Модуль создаёт заявку в банке и отправляет покупателя туда, куда ведёт этот банк: ПриватБанк — на свою страницу, monobank — в пуш приложения.

3. Банк присылает уведомление о результате. Модуль проверяет подпись уведомления — чужой запрос на этот адрес ничего не изменит.

4. Модуль не верит уведомлению на слово: он сверяет статус с банком отдельным запросом и только после этого меняет заказ.

5. Заказ переходит в оплаченный, покупатель видит страницу благодарности, магазин получает всю сумму.

Оплата частями в чекауте-блоках WooCommerce
То же и на чекауте-блоках: способ один, банк покупатель выбирает внутри

Почему сверка важнее уведомления

Уведомление от банка может не дойти: сайт лежал минуту, хостинг отдал 502, файрвол срезал запрос. Модуль, который полагается только на уведомление, в этот момент оставляет заказ в «Ожидает оплаты», хотя деньги уже списаны.

Здесь иначе. После возврата покупателя (ПриватБанк) или во время ожидания (monobank) модуль сам спрашивает банк, что с заявкой. Поэтому заказ закрывается даже тогда, когда уведомление потерялось по дороге.

Повторное уведомление ничего не дублирует: если банк пришлёт тот же результат дважды, модуль обработает его один раз. И оплаченный заказ нельзя отправить в банк повторно — заявка на уже оплаченный заказ просто не создаётся.

Журнал заявок оплаты частями для WooCommerce
Журнал Pro: банк, количество платежей, состояние в банке рядом со статусом WooCommerce, сверка и возврат кнопкой

Бесплатная версия и Pro

Бесплатная версия — это полноценный приём оплаты: оба банка, выбор банка покупателем, подсказка о ежемесячном платеже, классический чекаут и чекаут на блоках, проверка подписи, сверка с банком, защита от дублей, тестовые режимы. Ограничений по времени и рекламы в админке нет.

Pro добавляет то, без чего не обойтись магазину с большим потоком и возвратами:

выбор количества платежей покупателем прямо на чекауте, ещё до перехода в банк;
резерв с подтверждением для ПриватБанка: банк удерживает сумму, а списываете вы, когда товар действительно отгружен;
подтверждение выдачи товара для monobank — кнопкой или автоматически по выбранному статусу заказа;
полный и частичный возврат для monobank прямо из админки;
журнал заявок по обоим банкам с ответами банка.

Сколько стоит

Лицензия Pro — 990 грн, на один домен. Лицензия годовая: после окончания модуль продолжает принимать оплаты, перестают приходить только обновления и поддержка. «Навсегда» мы не обещаем: API банков меняется, и платёжный модуль без обновлений — это вопрос времени до сломанного чекаута.

Что нужно от банка

Нужен договор. Для ПриватБанка это «Оплата частями» или «Мгновенная рассрочка» — банк выдаёт ID магазина и пароль. Для monobank — договор «Покупка частями», по нему выдают store-id и секретный ключ.

Для тестов договор не нужен: у обоих банков есть публичные песочницы, и модуль имеет тестовые режимы под них. То есть вы можете полностью прогнать чекаут, уведомления и сверку ещё до того, как подпишете договор, и идти в банк уже с рабочим магазином.

Когда магазин получает деньги

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

monobank списывает первый платёж и выплачивает магазину всю сумму сразу после одобрения. Сама рассрочка становится активной после того, как магазин подтвердит выдачу товара — в Pro это делается кнопкой в журнале или автоматически по выбранному статусу заказа.

Технические требования

WordPress 6.2 и новее, WooCommerce, PHP 7.4 и новее. Обязателен HTTPS — без него банки не примут адрес для уведомлений.

Модуль совместим с HPOS (отдельные таблицы заказов WooCommerce) и работает как со старым хранилищем, так и с новым. Чекаут на блоках поддерживается наравне с классическим.

Что под капотом

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

Статус заказа меняет только сверенный с банком результат. Уведомление для модуля — это сигнал «пойди проверь», а не команда «сделай оплаченным».

Модуль не трогает другие способы оплаты и не переопределяет чекаут: он регистрируется как обычный платёжный шлюз WooCommerce и живёт рядом с остальными.

Как установить

1. Загрузите архив в «Плагины → Добавить новый → Загрузить плагин» и активируйте.

2. WooCommerce → Настройки → Платежи → «Оплата частями».

3. Включите нужные банки и введите реквизиты: для ПриватБанка — ID магазина, пароль и программу, для monobank — store-id и секретный ключ.

4. Включите тестовый режим и прогоните заказ на песочнице обоих банков.

5. Выключите тестовый режим — и можно принимать.

История версий

1.1.0 — A-Bank «Плати частями» третьим банком: заявка с подтверждением в приложении Abank24, страница ожидания, сверка статуса с банком. Уведомление A-Bank только запускает сверку, поэтому поддельный запрос не сделает заказ оплаченным. В Pro — подтверждение выдачи, отмена заявки и возврат для A-Bank. Поле телефона теперь отдельное для каждого банка.

1.0.0 — первый выпуск. ПриватБанк (программы II, PP, IA, PB, 2–25 платежей) и monobank (3–25 платежей, подтверждение в приложении без редиректа) в одном способе оплаты, выбор банка покупателем, подсказка о ежемесячном платеже, классический чекаут и чекаут на блоках, проверка подписи, сверка статуса с банком, защита от дублей и от повторной отправки оплаченного заказа, тестовые режимы на песочницах обоих банков, совместимость с HPOS. В Pro — выбор количества платежей на чекауте, резерв с подтверждением для ПриватБанка, подтверждение выдачи и возвраты для monobank, журнал заявок.

Частые вопросы

Нужен ли отдельный договор с банком?

Да. Для ПриватБанка — договор «Оплата частинами» или «Миттєва розстрочка» (банк выдаёт ID магазина и пароль), для monobank — договор «Покупка частинами» (store-id и секретный ключ). Для тестовых режимов договор не нужен: у обоих банков есть публичные песочницы.

Чем monobank отличается от ПриватБанка в чекауте?

ПриватБанк перебрасывает покупателя на свою страницу. monobank не перебрасывает никуда: покупатель получает пуш в приложении, а магазин показывает страницу ожидания, которая сама доводит заказ до успеха, как только банк ответит.

Когда магазин получает деньги за monobank?

Сразу после одобрения заявки — банк списывает первый платёж, а магазину выплачивается вся сумма. Рассрочка становится активной после того, как магазин подтвердит выдачу товара: кнопкой в журнале или автоматически по выбранному статусу заказа.

Кто платит комиссию банку?

В ПриватБанке зависит от программы: в II и IA — магазин, в PP и PB — покупатель. В monobank комиссию всегда платит магазин, покупатель не платит процентов.

Что будет, если уведомление от банка не дойдёт?

Модуль не полагается на уведомление: после возврата покупателя (ПриватБанк) или во время ожидания (monobank) он сам запрашивает состояние заявки в банке, поэтому оплаченный заказ не останется в статусе «ожидает оплаты».

Можно ли подделать уведомление и получить «оплаченный» заказ?

Нет. ПриватБанк подписывает уведомление паролем магазина, monobank — HMAC-SHA256 по секретному ключу. С неверной подписью уведомление отклоняется с кодом 400 и ничего не меняет.

Работает ли с чекаутом на блоках?

Да. Выбор банка, количества платежей и поле телефона monobank работают и в классическом чекауте, и в блочном.

Работает ли с суммами свыше 50 000 грн?

В ПриватБанке — нет, это ограничение банка, и модуль просто не показывает этот банк. В monobank верхней границы нет, лимит определяет банк для конкретного покупателя.

Как работает A-Bank и что для него нужно?

Как и monobank: покупатель вводит номер телефона и подтверждает заявку в приложении Abank24, магазин ждёт на своей странице. Нужен договор «Плати частями» — банк выдаёт идентификатор магазина, секретный ключ и торговую точку.

Вопросы по модулю?

Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.

@catcode_support

Не тот вариант, что искали?

Мы делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль