* @throws CheckoutException if an exceptions occurred in steps 1 through 5.
*/
public void handleNotification(BaseNotificationDispatcher dispatcher) throws CheckoutException {
Notification notification = getNotificationFromRequest(dispatcher.request);
String serialNumber = notification.getSerialNumber();
OrderSummary orderSummary = notification.getOrderSummary();
try {
dispatcher.startTransaction(serialNumber, orderSummary, notification);
if (!dispatcher.hasAlreadyHandled(serialNumber, orderSummary, notification)) {