Автоплатежи (рекуррентные платежи)

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (11)

просмотр истории страницы
{toc:maxLevel=4}

h1. Описание автоплатежей

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

В первый раз при подключении автоплатежа абоненту нужно совершить платеж на небольшую сумму, после чего платежная система и биллинг запомнят реквизиты этого платежа для совершения последующих списаний.
Дополнительно к этому, абонент указывает в личном кабинете сумму порога, если баланс опустится ниже этой суммы, то автоматически инициируется запрос денег через систему рекуррентных платежей.
h2. Как работают автоплатежи

На данный момент реализована поддержка рекуррентных платежей через платежную систему Uniteller.
Для этого нужно провести интеграцию платежной системы Uniteller, а так же через техническую поддержку Uniteller подключить возможность проведения рекуррентных платежей.
# При подключении автоплатежа абоненту нужно совершить платеж на небольшую сумму
# После чего платежная система и биллинг запомнят реквизиты этого платежа для совершения последующих списаний: платёжная система создаёт токен платежа, по нему происходят все последующие платежи.
# Когда абонента нужно заблокировать по балансу, вместо блокировки биллинг запросит необходимую сумму для работы до конца месяца.
{info}Если в настройках услуги отключена опция "Не списывать, если недостаточно средств, и деактивировать услугу", то автоплатеж списываться по этой услуге не будет{info}
# За 35 дней до устаревания токена, при использовании автоплатежа в аудит пишется сообщение о скором отключении автоплатежа из-за старого токена
{note}Если абонент вносил дополнительные средства вручную, и "последний" автоплатёж не произойдёт, то сообщения в аудите не будет: оно пишется только при проведении автоплатежа, когда до окончания срока токе остаётся 35 дней или менее{note}

h2. С какими платёжными системами можно настроить

h3. Uniteller

Для настройки рекуррентных платежей, проведите настройку платежной системы [Uniteller|CarbonBilling:WEB Эквайринг (Uniteller)], а так же через техническую поддержку Uniteller подключить возможность проведения рекуррентных платежей.

Шорткод для добавления настроек в личный кабинет:

{code}[cabinet_autopay_payment operator="uniteller"]{code}

h3. Paymaster

Для настройки рекуррентных платежей, проведите настройку платежной системы [Paymaster|CarbonBilling:Paymaster] (обязательно указать "Ключ подписи SHA256:" в биллинге и со стороны Paymaster), так же в личном кабинете Paymaster включить возможность проведения рекуррентных платежей.

Шорткод для добавления настроек в личный кабинет:
{code}[cabinet_autopay_payment operator="paymaster"]{code}

h1. Как подключить автоплатеж

Абонент должен произвести оплату любую сумму через ЛК с подключением автоплатежа.

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

Пример формы подключения автоплатежа:

!Форма подключения автоплатежа.png|border=0,width=600!

h1. Как отключить автоплатеж

h2. Автоматический, по истечении действия токена

Он отключается автоматический по истечении токена (через 1 год после подключения). При попытке проведения автоплатежа по невалидному (устаревшему) токену идет отключение автоплатежа и запись в аудит, что он отключен по такой причине.

h2. В карточке абонента

Если абонент просит отключить до истечения 1 года, в карточке абонента снимите соответствующую галочку и сохраните.

!PayMaster, автоплатеж в карточке абонета.png|border=0!

h2. Через API

[Воспользуйтесь API|CarbonBilling:API REST v2.0]: очистите поле *autopay_pay_log_id* в модели *Abonents* по ID абонента.

h1. Отладка

h2. Поиск информации по автоплатежам в [аудите|CarbonBilling:Аудит]

h3. Подключение автоплатежа

{panel:title=Пример}
Включение автоплатежа через оператора PAYMASTER из ЛК (пополнение на сумму сумму 100.00), ip: 10.0.0.15
Обновление информации COMMENT по платежу pk 123456 #333555 из ЛК
{panel}
* PAYMASTER - платёжный оператор, через которого совершен платёж
* 100.00 - сумма ОП
* 10.0.0.15 - IP, с которого абонент проводил платёж в ЛК
* 123456 - "id" в [журнале платежей|CarbonBilling:Журнал платежей. Просмотр оплат. Отчет по оплатам], поле PAY_LOG.ID в БД биллинга.
* 333555 - "ИД платежа" в [журнале платежей|CarbonBilling:Журнал платежей. Просмотр оплат. Отчет по оплатам], поле PAY_LOG.PAY_ID_STR_IN в БД биллинга.

{code:title=Ключевая фраза для поиска}Включение автоплатежа через оператора{code}
{code:title=Ключевая фраза для поиска}Обновление информации COMMENT{code}

h3. Отключение автопталежа
{panel:title=Пример}
Отключение автоплатежа через оператора None из ЛК, ip: 10.0.0.15
{panel}
* None - платёжный оператор, через которого совершен платёж. Может быть "None", тогда определить можно по логам asr_fiscal или сверив с информацией по подключению автоплатежа из аудита.
* 10.0.0.15 - IP, с которого абонент проводил платёж в ЛК

{code:title=Ключевая фраза для поиска} Отключение автоплатежа через оператора{code}

h3. Автоплатеж поставлен на паузу

{panel:title=Пример}
Автоплатеж поставлен на паузу.Платежная система вернула нефатальную ошибку: \{u'PaymasterError': u'\[invalid_token\] does not exist', u'Result': 604\}. Возможно необходима проверка настройки платежной системы
{panel}

{code:title=Ключевая фраза для поиска}Автоплатеж поставлен на паузу{code}

{note}Аудит может быть в [архиве|CarbonBilling:Настройка периода хранения исторических данных в базе], если не удалось найти запись - попробуйте указать более старую дату и повторить поиск, возможно автоплатёж в паузе больше месяца.{note}

h2. Поиск информации в логах

h3. PayMaster

Журнал обращений к PayMaster по автоплатежам:
{code}tail /app/asr_fiscal/var/log/paysystems/PaymasterAutopay.log{code}

Искать ошибки можно такой командой:
{code:title=Команда}grep -n RESPONSE.*error /app/asr_fiscal/var/log/paysystems/PaymasterAutopay.log -B20 | grep -E 'RESPONSE|Contract_number'{code}
{code:title=Пример вывода}1131832- [description] => Contract_number: BILL0001234
1131844: [RESPONSE] => {"status":"failure","error":"does not exist","error_code":"invalid_token"}
1131920- [description] => Contract_number: BILL0004567
1131932: [RESPONSE] => {"status":"failure","error":"does not exist","error_code":"invalid_token"}
{code}
[cabinet_autopay_payment operator="uniteller"]
В error_code написана ошибка, описание которой можно найти в документации PayMaster https://paymaster.ru/docs/ru/direct/#errors
{code}
h4. invalid_token

Например, выше на оба запроса платежа PayMaster отвечает "invalid_token", на что документация платёжной системы пишет:
{quote}access_token является недействительным, т.к. не совпадает с предоставленным токеном, токен истек или был отменен клиентом{quote}

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

h5. Решение

# Найдите когда платёж был подключен https://docs.carbonsoft.ru/pages/viewpage.action?pageId=65799222#Автоплатежи(рекуррентныеплатежи)-Подключениеавтоплатежа
# Если с момента подключения прошло больше года - скажите абоненту, что автоплатёж нужно подключить заново, так как он оформляется на один год, и это требование платёжной системы.

Если платёж был подключен менее года назад, тогда:
* скопируйте данные аудита
* скопируйте ошибку из лога вместе с командой, которой его искали
* составьте обращение на портале [HelpDesk|https://helpdesk.carbonsoft.ru/login.php]