Настройка модуля Assist
Установите модуль на сервер, обновите клиент. Затем создайте экземпляр модуля. Создайте новую конфигурацию модуля в редакторе конфигурации и сделайте её активной. Шаблон конфигурации приведен ниже:
# Заголовок пункта меню веб-статистики.
web.menuItem1=Оплата через Assist.Ru
# Тип платежа (ID), куда должны приписываться все проводимые платежи.
assist.paymenttype=
1
# Код магазина в системе ASSIST.
assist.Merchant_ID=******
# Полный адрес голого webexecuter. Используется для построения обратного пути, куда будет переводиться редиректом клиент после завершения транзакции.
assist.path=http://provaider.ru/bgbilling/webexecuter
# Комментарий. Данный параметр передаётся в ASSIST и отображается в выписках по операциям (доступны только эти два макроса).
assist.OrderComment=Оплата по договору ${contract} (${contract_comment})
# Комментарий добавляемого платежа (доступны указанные макросы).
assist.payment_comment=Оплата по дог. ${contract} (${contract_comment}) через Assist (Платёж
#${billnumber})(Плательщик: ${name})(Карта ${cardnumber} ${cardtype}/${cardsubtype}, держатель: ${cardholder}) от ${date}, сумма ${total}
# Признак авторизации кредитной карты при двустадийном механизме работы (0 – нормальный режим, 1 – режим авторизации кредитной карты). По умолчанию - нормальный режим.
#assist.Delay=0
# Логин sale в магазине
assist.login=******
# Пароль sale в магазине
assist.password=******
# Производить оплату по кредитной карте. (1 – использовать, 0 – не использовать). Если данный параметр не передаётся, то по умолчанию его значение установлено в 0.
assist.CardPayment=
1
# Использовать платёжную систему WebMoney Transfer. (1 - использовать, 0 - не использовать).
assist.WMPayment=
0
# Использовать платёжную систему Яндекс.Деньги. (1 - использовать, 0 - не использовать).
assist.YMPayment=
0
# оплата кредитной картой с использованием Assist®ID (1 - использовать, 0 - не использовать)
assist.AssistIDPayment=
0
# QIWI
assist.QIWIPayment=
0
assist.QIWIMtsPayment=
0
assist.QIWIMegafonPayment=
0
assist.QIWIBeelinePayment=
0
# Режим работы:
# test — магазин подключен в тестовом режиме;
# battle — магазин подключен в рабочем режиме;
# battletest — магазин подключен в рабочем режиме, но требуется совершать тестовые запросы (установка TestMode=1).
assist.ShopMode=test
# можно перегрузить (безусловно от режима работы магазина) адрес отправки параметров (если дали персональный).
assist.actionUrl=https://test.paysecure.ru/pay/order.cfm
После регистрации на сервисе Assist.Ru вам дадут параметры "код магазина", а также возможность настроить "логин" и "пароль" типа sale, которые нужно прописать в конфигурации. Чтобы узнать ID нужного платежа, выберите его в справочнике и нажмите Ctrl+i.
Необходимо получить у службы поддержки ООО «АССИСТ» (support@assist.ru) идентификатор предприятия merchant_id, логин и пароль администратора юридического лица для работы с Личным кабинетом (он находится по адресу https://account.paysecure.ru/), а также логин и пароль пользователя типа sale для работы с веб-сервисами.
Основное, на что необходимо обратить внимание при настройке магазина в личном кабинете:
Режим. Тестовый или Рабочий. Таким образом, режим определятся двумя настройками — в самом магазине Assist и в конфигурации модуля.
Для ручного запроса результатов платежей необходимы логин и пароль типа sale (см. личный кабинет).
Можно также настроить автоматическое перенаправление покупателя на сайт предприятия после завершения платежа в АПК ПР. Для этого необходимо выбрать действие после авторизации «Перейти на страницу магазина» в Личном кабинете по адресу https://account.paysecure.ru/ в разделе «Настройки мерчантов», вкладка «Настройки платежей». В этом случае после авторизации сразу загружается страница веб-статистики, на которой показывается предварительный результат этого платежа.
Настройка получения результатов операций: в личном кабинете assist поставить галку "отправлять результаты платежей", ввести URL, примерно такой: http://billing/bgbilling/assistexecuter?mid=<mid ассиста> , указать тип: SOAP. URL зависит от ваших настроек, проверьте доступность извне сервлета assistexecuter.
Не ставить (снять) галочку "отправлять только успешные", иначе неудачные платежи будут вечно висеть в статусе "в обработке".
Если у вас работала до этого старая версия протокола, то нужно ОБЯЗАТЕЛЬНО ОТКЛЮЧИТЬ задачу планировщика "Получение результатов операций".
Перед сменой состояния модуля с "рабочего" на "тестовый" необходимо убедиться, что в данный момент нет транзакций. Также необходимо решить вопрос с транзакциями со статусом "В обработке". После смены режима все ранее необработанные транзакции при обработке получат статус текущего режима! То есть, если транзакция начата как "тестовая", а запрос о подтверждении пришёл после смены режима на "рабочий", то она будет считаться проведённой в рабочем режиме, и наоборот. Платежи в договор в любом режиме добавляются одинаково.
Рекуррентный платёж
Поддерживается возможность периодических платежей. Пользователь при оплате может указать, что платёж периодический
# Рекуррентный платёж (если настроек нет, то запрещено)
# Минимальная сумма рекуррентных платежей
assist.RecurringMinAmount=
1.00
# Максимальная сумма рекуррентных платежей
assist.RecurringMaxAmount=
666.66
# Периодичность рекуррентных платежей в днях (
31
- magic number, означает месяц вне зависимости от кол-ва дней)
assist.RecurringPeriod=
31
# Дин.класс вызывается перед попыткой рекуррентного платежа (имплементация ru.bitel.bgbilling.modules.assist.server.RecurringRequest). Подразумевается, что можно сменить там сумму.
assist.recurring.request.
class
=ru.bitel.bgbilling.modules.assist.AssistRecurringRequest
# Комментарий. Данный параметр передается в ASSIST при рекуррентных платежах и отображается в выписках по операциям. (доступны только эти два макроса)
assist.OrderCommentRecurring=Рекуррентная оплата по договору ${contract} (${contract_comment})
Есть возможность ручной инициации платежа (см. в договоре на модуле assist внизу). Для работы должна быть настроена задача ежедневная.
Этот таск не смотрит на деньги, нехватку, подписку, абонку, блокировку. Всё это должно делаться в упомянутом дин.коде, который нужно написать под свои требования. "Делаться" только одно по сути: вычисление суммы, которую сейчас надо заплатить. По умолчанию поведение следующее: каждые N (из конфига) дней платится сумма S (заявленная юзером при подключении платежа) до достижения максимальной даты D (задаётся юзером при подключении платежа согласно сроку своей карты). С технической точки зрения: при этом платёж происходит точно также, как если бы человек сам платил из личного кабинета: сначала создаётся заказ, который сначала "в обработке", потом отправляется запрос в ассист, если он одобряется, то через некоторое время в тот же самый экзекутер приходит оповещение, заказ отмечается оплаченным, на договор добавляется платёж на эту сумму.