Настройка модуля Paylinks

Все методы конфигурируются в конфигурации модуля. Количество методов неограничено. Большинство из параметров метода параметризуются через макросы вида {$var}, количество которых, теоретически, неограничено.

В общем виде конфигурация модуля выглядит так (с подробными комментариями), используется реальный пример со шлюзом газпромбанка:

Конфигурация
# Параметры для одного варианта оплаты.
# Во всех параметрах (кроме title) действуют макроподстановки:
# 1) {$sum} - сумма, которую юзер вводит в поле.
# В параметре description не действует.
# В параметрах url и confirm действует: подставляется из поля, в которое её ввёл юзер.
# В параметрах result.* действует: попадает при наличии в обратных url параметра "sum", а для этого она должа быть прописана в параметре url в обратных адресах.
# 2) {$contract.getTitle} - данные договора, действуют везде.
# Здесь getTitle - пример, допустим любой публичный get-тер объекта Contract (см. API), "contract." - префикс переменной.
# В данный момент поддерживаются префиксы:
# {$contract.*} - объект договора соответствующего текущего.
# Примеры: {$contract.getTitle} - заголовок договора, {$contract.getId} - ИД договора (cid).
# 3) {$action}, {$mid}, {$module} - данные доступа для обратных url, действуют только в параметре url.
# Можно прописывать и напрямую, если удобно (например, module=paylinks&mid=666&action=Paylinks).
#
# Метод оплаты 1
# Заголовок.
method.1.title=Карты VISA, MasterCard
# url, на который отправляется пользователь.
# Если используются обратные url, то в них должно быть обязательно такое: http://webexecuter?mid=${mid}&module=${module}&action=${action}&operation=result&result=success
# При этом у параметра result могут быть разные значения, например, &result=success и т.д., на основании которых выберется дальше ответ.
# Если в ответе надо показать сумму (используется в шаблонах method.1.result.*), то она должна присутствовать как параметр "sum" в обратном url.
# Также в обратных url должен присутствовать параметр methodId=1 (с соответствующим номером метода), чтобы при возврате знать по какому методу платили и отобразить нужное сообщение.
# Если не надо показывать сообщение и т.д., то можно просто подставить url одного из экшенов, например просмотра баланса, тогда вернётся прямо туда.
# Здесь у нас два url обратных - для успеха и для неуспеха.
back_url_s=http://127.0.0.1:8080/bgbilling/webexecuter?mid={$mid}%26module={$module}%26action={$action}%26operation=result%26result=success%26sum={$sum}%26methodId=1
back_url_f=http://127.0.0.1:8080/bgbilling/webexecuter?mid={$mid}%26module={$module}%26action={$action}%26operation=result%26result=failed%26sum={$sum}%26methodId=1
method.1.url=https://www.pps.gazprombank.ru:443/payment/start.wsm?merch_id=xxx&o.account={$contract.getTitle}&o.sum={$sum}&back_url_s={@back_url_s}&back_url_f={@back_url_f}
# Описание метода, выводится при выборе варианта оплаты и запросе суммы.
method.1.description=Оплата через gazprombank, на счёт {$contract.getTitle}. Тест код договора: {$contract.getId}.
# Текст подтверждения, после ввода суммы.
method.1.confirm=Вы действительно хотите оплатить через gazprombank на счёт {$contract.getTitle} на сумму {$sum}?
# Варианты возврата, может быть любое количество. Соответствующее сообщение будет выведено
# при наличии в обратном url (по которому вернулся пользователь) соответствующего
# параметра (&result=anything).
method.1.result.success=Хорошо, платёж на сумму {$sum} прошёл на счёт {$contract.getTitle}
method.1.result.failed=Плохо, платёж на сумму {$sum} не прошёл на счёт {$contract.getTitle}
#
# Второй вариант оплаты какой-то
method.2.title=Test Тест
...

Обратите внимание, для удобства вынесены url успеха и неуспеха в отдельные параметры, а затем вставлены в основной параметр method.1.url.

Также обратите внимание, что в случае необходимости (например, при передаче через url других адресов возврата) экранировать символы надо заранее, и прописывать в конфигурацию уже экранированное, как, например, здесь %26 вместо &.

В данный момент существует возможность перехода формы только с методом GET.