// check the document type and process
if (document != null) {
String nodeValue = document.getDocumentElement().getNodeName();
if ("new-order-notification".equals(nodeValue)) {
// handle create new order
NewOrderNotification info = new NewOrderNotification(document);
String serialNumber = info.getSerialNumber();
try {
helper.createOrder(info, ProductStoreWorker.getProductStoreId(request), ProductStoreWorker.getStoreLocale(request));
sendResponse(response, serialNumber, null);
} catch (GeneralException e) {
Debug.logError(e, module);
sendResponse(response, serialNumber, e);
return null;
}
} else if ("order-state-change-notification".equals(nodeValue)) {
OrderStateChangeNotification info = new OrderStateChangeNotification(document);
String serialNumber = info.getSerialNumber();
try {
helper.processStateChange(info);
sendResponse(response, serialNumber, null);
} catch (GeneralException e) {
Debug.logError(e, module);
sendResponse(response, serialNumber, e);
return null;
}
} else if ("risk-information-notification".equals(nodeValue)) {
RiskInformationNotification info = new RiskInformationNotification(document);
String serialNumber = info.getSerialNumber();
try {
helper.processRiskNotification(info);
sendResponse(response, serialNumber, null);
} catch (GeneralException e) {
Debug.logError(e, module);
sendResponse(response, serialNumber, e);
return null;
}
} else if ("authorization-amount-notification".equals(nodeValue)) {
AuthorizationAmountNotification info = new AuthorizationAmountNotification(document);
String serialNumber = info.getSerialNumber();
try {
helper.processAuthNotification(info);
sendResponse(response, serialNumber, null);
} catch (GeneralException e) {
Debug.logError(e, module);
sendResponse(response, serialNumber, e);
return null;
}
} else if ("charge-amount-notification".equals(nodeValue)) {
ChargeAmountNotification info = new ChargeAmountNotification(document);
String serialNumber = info.getSerialNumber();
try {
helper.processChargeNotification(info);
sendResponse(response, serialNumber, null);
} catch (GeneralException e) {
Debug.logError(e, module);
sendResponse(response, serialNumber, e);
return null;
}
} else if ("chargeback-amount-notification".equals(nodeValue)) {
ChargebackAmountNotification info = new ChargebackAmountNotification(document);
String serialNumber = info.getSerialNumber();
try {
helper.processChargeBackNotification(info);
sendResponse(response, serialNumber, null);
} catch (GeneralException e) {
Debug.logError(e, module);
sendResponse(response, serialNumber, e);
return null;
}
} else if ("refund-amount-notification".equals(nodeValue)) {
RefundAmountNotification info = new RefundAmountNotification(document);
String serialNumber = info.getSerialNumber();
try {
helper.processRefundNotification(info);
sendResponse(response, serialNumber, null);
} catch (GeneralException e) {
Debug.logError(e, module);