Index: /main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 8420)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/applicants/browser.py	(revision 8421)
@@ -26,5 +26,5 @@
     IApplicantRegisterUpdate, IApplicant, IApplicantEdit)
 from waeup.kofa.applicants.browser import (ApplicantDisplayFormPage,
-    OnlinePaymentCallbackPage, ExportPDFPage,
+    ExportPDFPage,
     ApplicantManageFormPage, ApplicantEditFormPage,
     ApplicantRegistrationPage, ApplicantAddFormPage,
@@ -33,5 +33,5 @@
     ApplicantBaseDisplayFormPage)
 from waeup.kofa.applicants.viewlets import (
-    RequestCallbackActionButton, PaymentReceiptActionButton)
+    PaymentReceiptActionButton)
 from waeup.kofa.applicants.pdf import PDFApplicationSlip
 from waeup.uniben.applicants.interfaces import (
Index: /main/waeup.uniben/trunk/src/waeup/uniben/applicants/payment.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/applicants/payment.py	(revision 8420)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/applicants/payment.py	(revision 8421)
@@ -22,10 +22,15 @@
 from zope.component.interfaces import IFactory
 from zope.interface import implementedBy
-from waeup.kofa.payments import OnlinePayment
+from waeup.kofa.applicants.payment import ApplicantOnlinePayment
 from waeup.kofa.utils.helpers import attrs_to_fields
 from waeup.uniben.applicants.interfaces import ICustomApplicantOnlinePayment
 
-class CustomApplicantOnlinePayment(OnlinePayment):
-    """This is an online payment.
+class CustomApplicantOnlinePayment(ApplicantOnlinePayment):
+    """This is a custom online payment for applicants.
+
+    Since this class inherits from ApplicantOnlinePayment, it automatically
+    implements the interfaces of the parent class which means
+    all viewlets and views meant for StudentOnlinePayment
+    can also be accessed in the customized system.
     """
     grok.implements(ICustomApplicantOnlinePayment)
Index: /main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py	(revision 8420)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/interswitch/browser.py	(revision 8421)
@@ -27,6 +27,6 @@
 from waeup.kofa.utils.helpers import to_timezone
 from waeup.kofa.students.browser import write_log_message
-from waeup.kofa.students.viewlets import RequestCallbackActionButton as RCABStudent
-from waeup.kofa.applicants.viewlets import RequestCallbackActionButton as RCABApplicant
+from waeup.kofa.students.viewlets import ApprovePaymentActionButton as APABStudent
+from waeup.kofa.applicants.viewlets import ApprovePaymentActionButton as APABApplicant
 from waeup.kofa.payments.interfaces import payment_categories
 from waeup.uniben.students.interfaces import ICustomStudentOnlinePayment
@@ -128,5 +128,5 @@
     return True
 
-class InterswitchActionButtonStudent(RCABStudent):
+class InterswitchActionButtonStudent(APABStudent):
     grok.order(1)
     grok.context(ICustomStudentOnlinePayment)
@@ -141,5 +141,5 @@
         return self.view.url(self.view.context, self.target)
 
-class InterswitchActionButtonApplicant(RCABApplicant):
+class InterswitchActionButtonApplicant(APABApplicant):
     grok.order(1)
     grok.context(ICustomApplicantOnlinePayment)
@@ -172,16 +172,16 @@
 
 # Alternative preferred solution
-class InterswitchRequestWebserviceActionButtonStudent(RCABStudent):
+class InterswitchRequestWebserviceActionButtonStudent(APABStudent):
     grok.order(2)
     grok.context(ICustomStudentOnlinePayment)
     icon = 'actionicon_call.png'
-    text = _('Request CollegePAY Webservice')
+    text = _('Requery CollegePAY')
     target = 'request_webservice'
 
-class InterswitchRequestWebserviceActionButtonApplicant(RCABApplicant):
+class InterswitchRequestWebserviceActionButtonApplicant(APABApplicant):
     grok.order(2)
     grok.context(ICustomApplicantOnlinePayment)
     icon = 'actionicon_call.png'
-    text = _('Request CollegePAY Webservice')
+    text = _('Requery CollegePAY')
     target = 'request_webservice'
 
Index: in/waeup.uniben/trunk/src/waeup/uniben/payments/payment.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/payments/payment.py	(revision 8420)
+++ 	(revision )
@@ -1,32 +1,0 @@
-## $Id$
-##
-## Copyright (C) 2012 Uli Fouquet & Henrik Bettermann
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-"""
-These are the payment tickets.
-"""
-import grok
-from waeup.kofa.utils.helpers import attrs_to_fields
-from waeup.kofa.payments.payment import Payment
-from waeup.uniben.payments.interfaces import ICustomOnlinePayment
-
-class CustomOnlinePayment(Payment):
-    """This is an online payment.
-    """
-    grok.implements(ICustomOnlinePayment)
-    grok.provides(ICustomOnlinePayment)
-
-CustomOnlinePayment = attrs_to_fields(CustomOnlinePayment)
Index: /main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 8420)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 8421)
@@ -26,5 +26,5 @@
     StudentPersonalDisplayFormPage,
     StudentClearanceManageFormPage, StudentClearanceEditFormPage,
-    StudentClearanceDisplayFormPage, OnlinePaymentCallbackPage,
+    StudentClearanceDisplayFormPage, OnlinePaymentFakeApprovePage,
     ExportPDFClearanceSlipPage, StudentBaseManageFormPage,
     StudentBaseEditFormPage, StudentPersonalEditFormPage,
@@ -32,5 +32,5 @@
     OnlinePaymentBreadcrumb, ExportPDFPaymentSlipPage)
 from waeup.kofa.students.viewlets import (
-    RequestCallbackActionButton, PaymentReceiptActionButton)
+    PaymentReceiptActionButton)
 from waeup.uniben.students.interfaces import (
     ICustomStudentBase, ICustomStudent, ICustomStudentPersonal,
@@ -184,4 +184,17 @@
         return payment
 
+class CustomOnlinePaymentFakeApprovePage(OnlinePaymentFakeApprovePage):
+    """ Disable payment approval view for students.
+
+    This view is used for browser tests only and
+    has to be neutralized here!
+    """
+
+    grok.name('fake_approve')
+    grok.require('waeup.managePortal')
+
+    def update(self):
+        return
+
 class CustomExportPDFPaymentSlipPage(ExportPDFPaymentSlipPage):
     """Deliver a PDF slip of the context.
Index: /main/waeup.uniben/trunk/src/waeup/uniben/students/payments.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/students/payments.py	(revision 8420)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/students/payments.py	(revision 8421)
@@ -23,10 +23,15 @@
 from zope.interface import implementedBy
 from waeup.kofa.students.interfaces import IStudentNavigation
-from waeup.kofa.payments import PaymentsContainer, OnlinePayment
+from waeup.kofa.students.payments import StudentOnlinePayment
 from waeup.kofa.utils.helpers import attrs_to_fields
 from waeup.uniben.students.interfaces import ICustomStudentOnlinePayment
 
-class CustomStudentOnlinePayment(OnlinePayment):
-    """This is an online payment.
+class CustomStudentOnlinePayment(StudentOnlinePayment):
+    """This is a custom online payment for students.
+
+    Since this class inherits from StudentOnlinePayment, it automatically
+    implements the interfaces of the parent class which means
+    all viewlets and views meant for StudentOnlinePayment
+    can also be accessed in the customized system.
     """
     grok.implements(ICustomStudentOnlinePayment, IStudentNavigation)
Index: /main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 8420)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 8421)
@@ -124,5 +124,5 @@
                 # has paid for.
                 details['p_session'], details['p_level'] = self.getReturningData(student)
-        if details['amount'] == 0.0:
+        if details['amount'] in (0.0, None):
             details['error'] = _(u'Amount could not be determined.')
         return details
