Download PDF
Download page Автопополнение лицевого счёта.
Автопополнение лицевого счёта
Рекуррентные платежи — автоматические списания средств, которые выполняются с заданной периодичностью. Они не требуют повторного ввода данных банковской карты или электронного кошелька. В BILLmanager рекуррентные платежи используются для автоматического пополнения лицевого счёта (автоплатёж) и для создания подписок. Подробнее о настройках подписок см. Подписки, автопродление.
В случае использования рекуррентных платежей для автопополнения лицевого счёта, пользователь один раз настраивает автоматическое пополнение счета и потом его баланс пополняется автоматически по мере необходимости.
Логика работы
В BILLmanager автоматическое пополнение лицевого счёта происходит, когда на балансе клиента недостаточно средств для оплаты услуги с автоматическим продлением или ежедневным списанием.
Автоплатёж запускается командой warnmoney планировщике cron раз в день. Команда запускается независимо от того, был ли прошлый платёж успешным или нет. Если у клиента есть настроенные автоплатежи, система проверяет подходят ли услуги клиента под условия списания. Услуги проверяются в соответствии с параметрами LowMoneyNoticePeriod в конфигурационном файле. Если услуга попадает под условия, сумма её продления включается в автоплатёж и тогда каждый день при запуске warnmoney пытается списать деньги с привязанной карты.
Сумма каждого рекуррентного платежа формируется из прогнозируемых расходов на ближайший месяц. BILLmanager считает количество платежей не с первого числа месяца, а за месяц до даты очередного автоплатежа. Таким образом, если автоплатёж проводится 23 мая, BILLmanager посчитает все автоплатежи с 24 апреля до 23 мая включительно.
Например, клиент заказал услугу виртуального хостинга за 150 рублей в месяц и включил для неё автопродление. Также клиент использует рекуррентные платежи. После оплаты заказа на счету клиента осталось 10 рублей. Прогнозируемый расход на ближайший месяц составит 140 рублей. Чтобы оплатить второй месяц использования хостинга, BILLmanager выполнит рекуррентный платёж на 140 рублей. В следующем (третьем) месяце система выполнит рекуррентный платеж на полную стоимость услуги — 150 рублей.
Если автоматический платёж не удалось выполнить, клиенту будет отправлено уведомление "Ошибка проведения автоматической оплаты".
Настройка рекуррентных платежей
На стороне провайдера
Функцию рекуррентных платежей поддерживают методы оплаты:
- Сбербанк;
- Т-Банк;
- ЮKassa;
- Adyen;
- Stripe;
- PayMaster;
- PayFast;
- Payment.Center;
- UnitPay;
- WebMoney с выпиской счета.
Чтобы включить автоплатёж, перейдите в Провайдер → Методы оплаты → Изменить и включите опцию Рекуррентные платежи.
Эта опция также доступна на втором шаге добавления нового метода оплаты: Провайдер → Методы оплаты → Создать.
После активации флага на форме появятся настройки уникальные для каждого метода оплаты. Подробнее о них можно узнать в статье про конкретный метод оплаты.
Обратите внимание!
Автоматически созданные платежи по неоплаченным расходам могут быть удалены только вручную. Подробнее см. статью Настройка методов оплаты.
На стороне клиента
На стороне клиента, управление рекуррентными платежами происходит на странице Финансы → Автоплатеж. Этот пункт меню скрыт если провайдер не настроил ни одного метода оплаты с поддержкой автоматического пополнения счета.На форме настройки клиент может выбрать предпочитаемый метод оплаты и указать лимит на сумму рекуррентного платежа. Чтобы создать автоплатёж без ограничения, клиент должен оставить поле Максимальная сумма платежей пустым.
Обратите внимание
При создании автоплатежа система не позволит клиенту оставить пустым поле Максимальная сумма платежей, если в настройках метода оплаты вы указали ограничения минимальной или максимальной суммы платежа.
Когда клиенту недостаточно лимита для выполнения автоплатежа, BILLmanager отправит ему на email "Уведомление о достижении месячного лимита автоплатежа". Отправка происходит только при первой за текущий месяц неудачной попытке совершить платёж.
Например, за месяц сумма автоплатежей клиента составляет 90 рублей и настроен лимит в 100 рублей. Наступает день автопродления ещё одной услуги на 20 рублей. Будущая сумма автоплатежей за месяц составит 110 рублей, что больше указанного лимита. В этом случае BILLmanager отменит платёж и уведомит клиента по email. При этом BILLmanager считает количество платежей не с первого числа месяца, а за месяц до даты очередного автоплатежа. Таким образом, если автоплатёж проводится 23 мая, BILLmanager посчитает все автоплатежи с 24 апреля до 23 мая включительно.
Нажатие Подтвердить перенаправляет клиента в платёжную систему, чтобы разрешить выполнение автоматических платежей на имя компании провайдера.
Когда создаётся платёж
Платёж будет создан, если на балансе клиента недостаточно средств и нужно оплатить услугу с автопродлением или ежедневным списанием. Сразу после создания начинается процесс оплаты.
В планировщике cron:
- задание на отправку уведомлений и пополнение баланса (если настроен автоплатёж):
BILLmanager low money notification
0 1 * * * /usr/local/mgr5/sbin/billmaintain --command warnmoney >/dev/null 2>&1
- LowMoneyNoticePeriod — за сколько дней до окончания действия услуги отправлять уведомление о недостаточном количестве средств на счету
- LowMoneyExpirePeriod — за сколько дней отправлять уведомление о том, что нужно продлять услуги. Если не включено автопродление
- задание на продление услуг через ССО или с баланса лицевого счёта:
BILLmanager daily billing
15 0 * * * /usr/local/mgr5/sbin/billmaintain --command billdaily >/dev/null 2>&1
- DaysToRecurringPaymentForAutoprolong — за сколько дней начинать попытки продления услуги через ССО
Если не выполняется платёж
Проверьте логи
Если в процессе оплаты возникла проблема на стороне платёжной системы, то в BILLmanager платёж зависает в статусе "Новый". При этом в лог-файл /usr/local/mgr5/var/logs/billmgr.log будет добавлена строка вида:
core_module INFO Request [pm<payment_system>][root] 'func=payment.recurring.payerror&out=xml&payment=<payment_id>'
payment_system — название платёжной системы.
payment_id — код (id) платежа в BILLmanager.
Чтобы получить информацию о возникшей проблеме, откройте лог соответствующей платёжной системы.
ЮKassa — /usr/local/mgr5/var/ycresult.log.
Adyen — /usr/local/mgr5/var/adyenrecresult.log.
WebMoney с выпиской счёта — /usr/local/mgr5/var/pmwebmoneyas.log.
Stripe — /usr/local/mgr5/var/pmstripe.log.
PayMaster — /usr/local/mgr5/var/pmpaymaster.log.
SimplePay — /usr/local/mgr5/var/simplepayrecurringresult.log.
Ошибка Invalid_token
Если от платёжной системы приходит ответ invalid_token, то BILLmanager использует истёкший или неверный токен для авторизации. В этом случае в лог-файле платёжной системы есть строка вида:
libmgr ERROR Error: Type: '<payment_system>_error' Object: 'expired' Value: 'invalid_token'
Чтобы устранить проблему, в личном кабинете клиента настройте новый автоплатёж:
- Перейдите в Финансы → Автоплатёж.
- Отключите старый автоплатёж.
- Настройте новый.