Настройка модуля 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# QIWIassist.QIWIPayment=0assist.QIWIMtsPayment=0assist.QIWIMegafonPayment=0assist.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 (задаётся юзером при подключении платежа согласно сроку своей карты). С технической точки зрения: при этом платёж происходит точно также, как если бы человек сам платил из личного кабинета: сначала создаётся заказ, который сначала "в обработке", потом отправляется запрос в ассист, если он одобряется, то через некоторое время в тот же самый экзекутер приходит оповещение, заказ отмечается оплаченным, на договор добавляется платёж на эту сумму.