Все методы конфигурируются в конфигурации модуля. Количество методов неограничено. Большинство из параметров метода параметризуются через макросы вида {$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.