Index: WAeUP_SRP/trunk/skins/waeup_epayment/getPaymentsFolderInfo.py
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_epayment/getPaymentsFolderInfo.py	(revision 3709)
+++ WAeUP_SRP/trunk/skins/waeup_epayment/getPaymentsFolderInfo.py	(revision 3709)
@@ -0,0 +1,131 @@
+## Script (Python) "getPaymentsFolderInfo"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# $Id: getPaymentsFolderInfo.py 2761 2007-11-26 09:45:58Z henrik $
+"""
+Info for the PaymentsFolder
+"""
+from Products.AdvancedQuery import Eq, Between, Le,In
+
+mtool = context.portal_membership
+wftool = context.portal_workflow
+member = mtool.getAuthenticatedMember()
+payments_catalog = context.payments_catalog
+aq_payments = payments_catalog.evalAdvancedQuery
+if mtool.isAnonymousUser():
+    return None
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+
+def cmp_id(a,b):
+    s1 = "%(id)s" % a
+    s2 = "%(id)s" % b
+    if s1 == s2:
+        return 0
+    if s1 > s2:
+        return 1
+    return -1
+
+import DateTime
+request = context.REQUEST
+#students = context.portal_url.getPortalObject().campus.students
+student_id = context.getStudentId()
+if student_id is None:
+    return context.REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
+#student = getattr(students,student_id)
+student_record = context.students_catalog.getRecordByKey(student_id)
+
+
+info = {}
+is_so = info['is_so'] = context.isSectionOfficer()
+is_student = info['is_student'] = context.isStudent()
+info['student_name'] = student_record.name
+info['query_url'] = "https://webpay.interswitchng.com/paydirect/services/TransactionQueryURL.aspx"
+review_state = info['review_state'] = student_record.review_state
+parttime = student_record.mode and student_record.mode.endswith('_pt')
+fulltime = student_record.mode and student_record.mode.endswith('_ft')
+
+
+session = student_record.session
+next_info = context.getNextInfo(student_record)
+info['next_session'] = next_info['next_session_id']
+info['next_session_str'] = next_info['next_session_str']
+info['payment_method'] = ""
+info['reasons'] = next_info['reasons']
+
+# begin customization
+
+if review_state == 'cleared_and_validated' and session != '07':
+    info['payment_method'] = "online_payment"
+elif review_state == 'cleared_and_validated' and session == '07':
+    info['payment_method'] = "sc_payment"
+elif review_state == 'returning' and info['next_session'] != session:
+    info['payment_method'] = "sc_payment"
+info['prod_id'] = '61'
+
+# end customization
+
+info['student_name'] = student_record.name
+payments_path = "%s/campus/students/%s/payments" % (context.portal_url(),student_id)
+payments = []
+payment_records = aq_payments(Eq('student_id',student_id)) # & Eq('session_id',student_record.session))
+vocabularies = context.portal_vocabularies
+paid_fees = []
+for payment in payment_records:
+    if payment.status == "paid":
+        paid_fees += "%s_%s" % (payment.category,payment.session_id),
+#info['pf'] = paid_fees
+for payment in payment_records:
+    row = {}
+    row['id'] = payment.key
+    if payment.status == 'invalid':
+        row['title'] = "Invalid Payment, Naira %s, %s" % (payment.amount,
+                                                          payment.date.strftime("%d/%m/%y %H:%M:%S"))
+    else:
+        row['title'] = "%s for Session %s, Naira %s, %s" % (vocabularies.payment_categories.get(payment.category),
+                                                            vocabularies.sessions.get(payment.session_id),
+                                                            payment.amount,
+                                                            payment.date.strftime("%d/%m/%y %H:%M:%S"))
+    oid = payment.order_id
+    onr = oid.rfind('-')+1
+    if onr > 0:
+        start_pos = onr
+    else:
+        start_pos = 6
+    url = row['url'] = "%s/p%s" % (payments_path,oid[start_pos:])
+    row['is_requeryable'] = "%s_%s" % (payment.category,payment.session_id) not in paid_fees and payment.type == 'online' or str(member) in ('admin',)
+    row['is_approvable'] = is_so and row['is_requeryable'] and payment.category == 'schoolfee' # does not make sense for maitenance
+    row['resp_desc'] = payment.resp_desc or 'Payment Process Interrupted'
+    row['trans_ref'] = payment.order_id
+    if row['is_requeryable']:
+        row['callback_url'] = "%(url)s/interswitch_cb" % row
+#        if payment.category == 'schoolfee':
+#            row['callback_url'] = "%(url)s/interswitch_cb" % row
+#        elif payment.category == 'hostel_maintenance':
+#            row['callback_url'] = "%(url)s/interswitch_acco_cb" % row
+#        else:
+        href = '%(query_url)s' % info
+        href += '?transRef=%(trans_ref)s' % row
+        href += '&prodID=%(prod_id)s' % info
+        href += '&redirectURL=%(callback_url)s' % row
+        row['href'] = href
+    if payment.status == 'paid':
+        row['confirmed'] = 'active'
+    else:
+        row['confirmed'] = 'unsuccessful'
+    row['is_editable'] = is_so and (row['confirmed'] == 'active')
+    payments.append(row)
+
+payments.sort(cmp_id)
+info['payments'] = payments
+return info
+
Index: WAeUP_SRP/trunk/skins/waeup_epayment/getSchoolFee.py
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_epayment/getSchoolFee.py	(revision 3709)
+++ WAeUP_SRP/trunk/skins/waeup_epayment/getSchoolFee.py	(revision 3709)
@@ -0,0 +1,127 @@
+## Script (Python) "getSchoolFee"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=brain=None
+##title=
+##
+# $Id: getSchoolFee.py 2797 2007-11-27 20:48:00Z henrik $
+"""
+return SchoolFee
+"""
+
+fee1 = ("ART",
+        "SSC",
+        "LAW",
+        "EDU",
+        )
+session_fees = {'99': ('22200','23700'),
+                '00': ('22200','23700'),
+                '01': ('22200','23700'),
+                '02': ('22200','23700'),
+                '03': ('22200','23700'),
+                '04': ('22200','23700'),
+                '05': ('22200','23700'),
+                '06': ('22200','23700'),
+                '07': ('22200','23700'),
+                }
+pt_fees = {
+            "DIF":{'description':"Diploma in French",'returning':"17700",'new':"32200"},
+            "DTA":{'description':"Diploma in Theatre Arts",'returning':"19700",'new':"34200"},
+            "DISD":{'description':"Diploma in International Studies",'returning':"27700",'new':"42200"},
+            "DFA":{'description':"Diploma in Fine & Applied Arts",'returning':"19700",'new':"34200"},
+            "DAE":{'description':"Diploma in Agric Econs",'returning':"25700",'new':"41700"},
+            "DFS":{'description':"Diploma in Fishery, Forestry & Wildlife",'returning':"22700",'new':"38700"},
+            "DAC":{'description':"Diploma in Agric Crop Science",'returning':"19700",'new':"35700"},
+            "DFBS":{'description':"Diploma in Food & Brewering Science",'returning':"22700",'new':"38700"},
+            "DIA":{'description':"Diploma in Accounting",'returning':"27700",'new':"42200"},
+            "DBF":{'description':"Diploma in Banking & Finance",'returning':"27700",'new':"42200"},
+            "DAIC":{'description':"Diploma in Applied Industrial Chemistry",'returning':"22700",'new':"38700"},
+            "DAM":{'description':"Diploma in Applied Microbiology",'returning':"22700",'new':"38700"},
+            "DIG":{'description':"Diploma in Geology",'returning':"25700",'new':"41700"},
+            "DSLT":{'description':"Diploma in Science Lab Tech.",'returning':"25700",'new':"41700"},
+            "DES":{'description':"Diploma in Environmental Science",'returning':"22700",'new':"38700"},
+            "DICE":{'description':"Diploma in Computer Engineering",'returning':"27700",'new':"43700"},
+            "DICHE":{'description':"Diploma in Chemical Engineering",'returning':"27700",'new':"43700"},
+            "DDP":{'description':"Diploma in Data Processing",'returning':"27700",'new':"43700"},
+            "DCG":{'description':"Diploma in Cartography",'returning':"19700",'new':"34200"},
+            "DSW":{'description':"Diploma in Social Works",'returning':"25700",'new':"40200"},
+            "DIL":{'description':"Diploma in Law",'returning':"27700",'new':"42200"},
+            "DHT":{'description':"Diploma in Recreation, Hotel & Tourism Management",'returning':"27700",'new':"42200"},
+            "DIE":{'description':"Diploma in Epidermiology",'returning':"27700",'new':"42200"},
+            "CIE":{'description':"Certificate in Epidermiology",'returning':"21200",'new':"36200"},
+            "CEHD":{'description':"Certificate in early Child Health & Development",'returning':"21200",'new':"36200"},
+            "DLS":{'description':"Diploma in Library & Information Science",'returning':"24200",'new':"37200"},
+            "BFA":{'description':"Bachelor in Fine & Applied Arts",'returning':"27700",'new':"42200"},
+            "BTA":{'description':"Bachelor in Theatre Arts",'returning':"27700",'new':"42200"},
+            "BEL":{'description':"Bachelor in English",'returning':"27700",'new':"42200"},
+            "BFR":{'description':"Bachelor in French",'returning':"27700",'new':"42200"},
+            "BISD":{'description':"Bachelor in International Studies & Diplomacy",'returning':"27700",'new':"42200"},
+            "BAE":{'description':"Bachelor in Agric Econs",'returning':"32700",'new':"48700"},
+            "BAN":{'description':"Bachelor in Animal Science",'returning':"27700",'new':"43700"},
+            "BAC":{'description':"Bachelor in Crop Science",'returning':"27700",'new':"43700"},
+            "BAS":{'description':"Bachelor in Soil Science",'returning':"27700",'new':"43700"},
+            "BIA":{'description':"Bachelor in Accounting",'returning':"32700",'new':"47200"},
+            "BBF":{'description':"Bachelor in Banking & Finance",'returning':"32700",'new':"47200"},
+            "BLG":{'description':"Bachelor in Local Govt. Admin.",'returning':"22700",'new':"37200"},
+            "BPA":{'description':"Bachelor in Public Admin.",'returning':"32700",'new':"47200"},
+            "BSW":{'description':"Bachelor in Social Works",'returning':"27700",'new':"42200"},
+            "BES":{'description':"Bachelor in Environmental Science",'returning':"27700",'new':"43700"},
+            "BSLT":{'description':"Bachelor in Science Lab. Tech.",'returning':"27700",'new':"43700"},
+            "BIP":{'description':"Bachelor in Industrial Physics",'returning':"27700",'new':"43700"},
+            "BSCS":{'description':"Bachelor in Statistics & Computer",'returning':"29700",'new':"45700"},
+            "BEEL":{'description':"Bachelor in Electronic & Electrical Engineering",'returning':"32700",'new':"48700"},
+            "BECV":{'description':"Bachelor in Civil Engineering",'returning':"32700",'new':"48700"},
+            "BEMCH":{'description':"Bachelor in Mechanical Engineering",'returning':"32700",'new':"48700"},
+            "BEPE":{'description':"Bachelor in Petroleum Engineering",'returning':"32700",'new':"48700"},
+            "BESTR":{'description':"Bachelor in Structural Engineering",'returning':"32700",'new':"48700"},
+            "BECE":{'description':"Bachelor in Chemical Engineering",'returning':"32700",'new':"48700"},
+            "BPRE":{'description':"Bachelor in Production Engineering",'returning':"32700",'new':"48700"},
+            "LLBPT":{'description':"Bachelor in Law",'returning':"32700",'new':"48700"},
+            "ODPT":{'description':"Doctor of Optometry",'returning':"42700",'new':"58700"},
+            "PHARMD1":{'description':"Doctor of Pharmacy",'returning':"44700",'new':"58700"},
+
+            "CPA":{'description':"Certificate in Public Admin",'returning':"21200",'new':"35200"},
+            "DHAM":{'description':"Diploma in Health Management",'returning':"24200",'new':"37200"},
+            "DNAM":{'description':"Diploma in Nursing Admin & Management",'returning':"27200",'new':"40200"},
+            "DPA":{'description':"Diploma in Public Admin",'returning':"27200",'new':"40200"},
+            "DHS":{'description':"Diploma in Primary Health Care & Statistics",'returning':"27200",'new':"40200"},
+            "ADHFM":{'description':"Advanced Diploma in Health Care Financing and Management",'returning':"29200",'new':"42200"},
+            "DAE":{'description':"Diploma in Adult Education",'returning':"20200",'new':"33200"},
+            "DME":{'description':"Diploma in Maths Education",'returning':"23200",'new':"36200"},
+            "DPE":{'description':"Diploma in Physical Education",'returning':"23200",'new':"36200"},
+            "DHE":{'description':"Diploma in Health Education",'returning':"23200",'new':"36200"},
+            "DEC":{'description':"Diploma in Early Childhood Education",'returning':"20200",'new':"33200"},
+            "DLS":{'description':"Diploma in Library & Information Science",'returning':"24200",'new':"37200"},
+            "BECO":{'description':"Bachelor in Computer Engineering",'returning':"32700",'new':"48700"},
+
+            "BECOSW":{'description':"Bachelor of Economics Education (Sandwich)",'returning':"22700",'new':"37200"},
+
+            "BBEDSW":{'description':"Bachelor of Business Education (Sandwich)",'returning':"22700",'new':"37200"},
+            "BENLSW":{'description':"Bachelor of English & Literature Education (Sandwich)",'returning':"22700",'new':"37200"},
+            "BEMGTSW":{'description':"Bachelor of Management Education (Sandwich)",'returning':"22700",'new':"37200"},
+            "BBIOSW":{'description':"Bachelor of Biology Education (Sandwich)",'returning':"23200",'new':"38700"},
+            "BCSCSW":{'description':"Bachelor of Computer Science Education (Sandwich)",'returning':"23200",'new':"38700"},
+            "BAGRSW":{'description':"Bachelor of Agricultural Science Education (Sandwich)",'returning':"23200",'new':"38700"},
+            "BHEDSW":{'description':"Bachelor of Health Education (Sandwich)",'returning':"23200",'new':"38700"},
+            "BAH":{'description':"Bachelor of Arts in History",'returning':"27700",'new':"42200"},
+            "BFW":{'description':"Bachelor in Agriculture (Forestry & Wildlife)",'returning':"27700",'new':"42200"},
+
+         }
+
+d = {}
+if brain.mode.endswith('_ft'):
+    f = 1
+    if brain.faculty in fee1:
+        f = 0
+    d['new'] = session_fees[brain.session][f]
+    d['returning'] = 'not set'
+    d['description'] = "School Fee for Session %s" % context.getSessionsVoc(key=brain.session)
+if pt_fees.has_key(brain.course):
+    d = pt_fees[brain.course]
+    d['description'] = "School Fee for Session %s, %s" % (context.getSessionsVoc(key=brain.session),
+                                                         d['description'])
+return d
+
Index: WAeUP_SRP/trunk/skins/waeup_epayment/goto_interswitch_form.pt
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_epayment/goto_interswitch_form.pt	(revision 3709)
+++ WAeUP_SRP/trunk/skins/waeup_epayment/goto_interswitch_form.pt	(revision 3709)
@@ -0,0 +1,43 @@
+<metal:body use-macro="here/main_template/macros/master">
+    <metal:main fill-slot="main"
+                tal:define="info options/info">
+                
+        <h3>Authorize Online Payment! </h3>
+        <br />
+                
+      <form method="post" action="pay_online"
+            tal:attributes="action info/action ">
+      <span tal:repeat="arg python:info['args'].items()"
+            tal:omit-tag="">
+          <input type="hidden" tal:attributes="name python:arg[0];value python:arg[1]" />
+      </span>          
+        <table>
+          <tr>
+            <td width="100px">
+            Payment:</td>
+            <td tal:content="info/type_description"></td>
+          </tr>
+          <tr>
+            <td>
+            Name:
+            </td>
+            <td tal:content="info/pay_bill_to" />
+          </tr>
+          <tr>
+            <td >
+            Amount:
+            </td>
+            <td> Naira <span tal:content="info/amount" /></td>
+          </tr>
+      
+        </table>
+        <br />
+        <input type="submit" 
+               class="standalone" 
+               name="goto_bank" 
+               value="Proceed to Payment Gateway" 
+               />
+      </form>
+    </metal:main>
+</metal:body>
+
Index: WAeUP_SRP/trunk/skins/waeup_epayment/interswitch_form.pt
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_epayment/interswitch_form.pt	(revision 3709)
+++ WAeUP_SRP/trunk/skins/waeup_epayment/interswitch_form.pt	(revision 3709)
@@ -0,0 +1,41 @@
+<metal:body use-macro="here/main_template/macros/master">
+  <metal:main fill-slot="main"
+              tal:define="info options/info">
+    <h3>Confirm Your Payment Data! </h3>
+    <br />
+    <span tal:condition="not: info/payment_possible">
+      No payment information for your course available.
+    </span>
+    <span tal:condition="info/payment_possible">
+      <form method="post" action="pay_interswitch">
+        <table>
+          <tr>
+            <td width="100px">
+            Payment:</td>
+            <td tal:content="info/type_description"></td>
+          </tr>
+          <tr>
+            <td>
+            Name:
+            </td>
+            <td tal:content="info/pay_bill_to" />
+          </tr>
+          <tr>
+            <td >
+            Amount:
+            </td>
+            <td> Naira <span tal:content="info/amount" /></td>
+          </tr>
+        </table>
+        <br />
+        <input type="submit" 
+               class="standalone" 
+               name="goto_bank" 
+               value="Confirm" 
+               />
+
+      </form>
+    </span>
+    </metal:main>
+</metal:body>
+
Index: WAeUP_SRP/trunk/skins/waeup_epayment/pay_interswitch.py
===================================================================
--- WAeUP_SRP/trunk/skins/waeup_epayment/pay_interswitch.py	(revision 3709)
+++ WAeUP_SRP/trunk/skins/waeup_epayment/pay_interswitch.py	(revision 3709)
@@ -0,0 +1,167 @@
+## Script (Python) "pay_online"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# $Id: pay_interswitch.py 2664 2007-11-15 14:35:05Z henrik $
+"""
+pay online
+"""
+from urllib import urlencode
+import logging
+logger = logging.getLogger('Skins.pay_interswitch')
+import DateTime
+
+if context.portal_membership.isAnonymousUser():
+    return None
+
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+request = context.REQUEST
+wftool = context.portal_workflow
+students = context.portal_url.getPortalObject().campus.students
+
+
+student_id = context.getStudentId()
+student = getattr(students,student_id)
+
+student_record = context.students_catalog.getRecordByKey(student_id)
+#amount,description = context.getSchoolFee(student_record.faculty,student_record.session,student_record.course)
+info = {}
+info['student'] = student_record
+info['payment_possible'] = False
+info['amount'] = '0'
+info['bank'] = ''
+info['type_description'] = ''
+info['pay_bill_to'] = ''
+fee_dict = context.getSchoolFee(student_record)
+fulltime = student_record.mode.endswith('_ft')
+new = student_record.review_state == 'cleared_and_validated'
+returning = student_record.review_state == 'returning'
+if not fee_dict or (not new and fulltime) or not (new or returning):
+    return context.interswitch_form(info=info)
+info['site_id'] = '61'
+info['currency_id'] = '566'
+if new:
+    amount = info['amount'] = fee_dict['new']
+elif returning:
+    amount = info['amount'] = fee_dict['returning']
+if fulltime:
+    pay_item_id = "6100"
+    #info['type_code'] = student_record.faculty   #type_code is redundant and will be removed soon
+    info['bank'] = ''
+else:
+    pay_item_id = "6101"
+    #info['type_code'] = student_record.course  #type_code is redundant and will be removed soon
+    info['bank'] = ''
+info['payment_possible'] = True
+info['type_description'] = fee_dict['description']
+info['pay_bill_to'] = student_record.name
+info['pay_ship_to'] = "University of Benin"
+info['student_id'] = student_id
+info['student_name'] = student_record.name
+info['student_email'] = student_record.email
+info['session_id'] = student_record.session   # this holds only for new students und must be replaced when also previous session students will pay online !!!!!!
+info['type'] = 'online'
+info['status'] = 'started'
+info['item'] = student_record.course
+info['category'] = 'schoolfee'
+now = DateTime.DateTime()
+info['date'] = now
+timestamp = "%d" % int(now.timeTime()*1000)
+info['order_id'] = "%s%s" % (student_id[1:],timestamp)
+p_id = "p%s" % timestamp
+
+if student_id is None:
+    return context.REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())
+
+if True or context.portal_url().find('uniben-demo.waeup.org') >-1 or\
+   context.portal_url().find('uniben.waeup.org') >-1:
+    info['action'] = "https://webpay.interswitchng.com/paydirect/webpay/pay.aspx"
+else:
+    #pass
+    #return None
+    info['action'] = "%s/payments/%s/simulate_callback" % (student.absolute_url(),p_id)
+
+
+if "payments" not in student.objectIds():
+    student.invokeFactory('PaymentsFolder','payments')
+    payments = getattr(student,'payments')
+    d = {}
+    d['Title'] = 'Payments'
+    payments.getContent().edit(mapping=d)
+    wftool.doActionFor(payments,'open')
+else:
+    payments = getattr(student,'payments')
+if request.has_key('epayment'):
+    return context.interswitch_form(info=info)
+
+
+payments.invokeFactory('Payment', p_id)
+payment = getattr(payments,p_id)
+wftool.doActionFor(payment,'open')
+d = {}
+d.update(info)
+#from Products.zdb import set_trace;set_trace()
+payment.getContent().edit(mapping=d)
+#wftool.doActionFor(payment,'close')
+#wftool.doActionFor(student,'pay_school_fee')
+info['callback_url'] = "%s/payments/%s/interswitch_cb?echo=%s" % (student.absolute_url(),
+                                                                  p_id,
+                                                                  p_id)
+
+logger.info('%(student_id)s initiated online school fee payment with order_id %(order_id)s and callback url %(callback_url)s' % info)
+payment_fields = (('product_id','site_id'),
+                  ('site_redirect_url','callback_url'),
+                  ('Currency','currency_id'),
+                  ('cust_id','student_id'),
+                  ('cust_id_desc','type_description'),
+                  ('cust_name','student_name'),
+                  ('txn_ref','order_id'),
+                  ('Amount','amount'),
+                  )
+args = {}
+for arg,field in payment_fields:
+    args[arg] = info[field]
+itotal = int(amount)*100
+wema_amount = 10000
+provider_amount = 35000
+interswitch_amount = 15000
+#uniben_amount = itotal - wema_amount - provider_amount - interswitch_amount
+uniben_amount = itotal - interswitch_amount
+xmldict = {}
+xmldict['detail_ref'] = args['txn_ref']
+xmldict['department'] = student_record.department
+xmldict['faculty'] = student_record.faculty
+#xmldict['wema_amt'] = "%d" % wema_amount
+#xmldict['provider_amt'] = "%d" % provider_amount
+xmldict['uniben_amt'] = "%d" % uniben_amount
+##<item_detail item_id="2" item_name="WEMA" item_amt="%(wema_amt)s" bank_id="16" acct_num="48398023902" />
+##<item_detail item_id="3" item_name="Portal Provider" item_amt="%(provider_amt)s" bank_id="47" acct_num="0980938209483" />
+xmltext = """
+<payment_item_detail>
+<item_details detail_ref="%(detail_ref)s" college="UNIBEN" department="%(department)s"
+faculty="%(faculty)s">
+<item_detail item_id="1" item_name="UNIBEN" item_amt="%(uniben_amt)s" bank_id="16" acct_num="384950902390" />
+</item_details>
+</payment_item_detail>
+""" % xmldict
+#total = int(xmldict['uniben_amt'])+int(xmldict['wema_amt'])+int(xmldict['provider_amt'])
+total = int(xmldict['uniben_amt'])
+args['Amount'] = "%d" % (total + 15000)
+args['site_name'] = "uniben.waeup.org"
+args['cust_name_desc'] = "Student Name"
+args['pay_item_id'] = pay_item_id
+args['pay_item_name'] = "UNIBEN Tuition Payments"
+args['payment_params'] = 'switch_college_split'
+#args['xml_data'] = xmltext % info
+args['xml_data'] = ''
+info['args'] = args
+return context.goto_interswitch_form(info=info)
