У меня, к сожалению, нет модуля dispatch, но вот обычный веб-экшен, который сможет что-то сохранить в базу:
Код:
package ru.xxx.contract.action.web;
import org.apache.log4j.Logger;
import org.w3c.dom.Element;
import bitel.billing.server.contract.action.base.ActionBase;
import bitel.billing.server.contract.bean.Contract;
import bitel.billing.server.contract.bean.ContractManager;
/**
* <p><b>Отложенный платёж</b></p>
* <p>Альтернативная реализация отложенного платежа.</p>
* <p>Скрипт запускается из динамического кода в биллинге. Для связи веб-экшена и класса из динамического кода
* в конфигурацию биллинга нужно добавить:
* <code>
* dynaction:contract.web.ActionDeferredPayment=ru.xxx.contract.action.web.ActionDeferredPayment
* </code>
* </p>
*/
public class ActionDeferredPayment2 extends ActionBase {
private Logger log = Logger.getLogger(ActionDeferredPayment2.class);
/**
* <p>Идентификатор модуля NPay.</p>
*/
private int NPAY_MID = 2;
@Override
public void doAction() throws Exception {
this.rootNode.setAttribute("status", "ok");
String command = this.request.getParameter("command");
this.rootNode.setAttribute("contractId", Integer.toString(this.cid));
this.rootNode.setAttribute("command", command);
Element element = createElement(this.rootNode, "deferredPayment");
if (command == null || command.isEmpty() || command.equals("activate")) {
ContractManager cm = new ContractManager(this.con);
Contract contract = cm.getContractById(this.cid);
cm.recycle();
Здесь делаем что-нибудь полезное с договором. Если нужна база, то
коннекшен можно взять здесь: this.con.
}
}
}
Читайте комментарии в коде. Как быстрое решение подойдёт. Не совсем правильно будет, но для начала сойдёт.