Ignore:
Timestamp:
16 Jan 2014, 15:46:17 (11 years ago)
Author:
Henrik Bettermann
Message:

Implement validation of PAYMENT_TYPE parameter.

Location:
main/waeup.aaue/trunk/src/waeup/aaue/etranzact
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.aaue/trunk/src/waeup/aaue/etranzact/browser.py

    r10932 r10937  
    5353    ACCEPTED_IP = None
    5454
    55     def update(self, PAYEE_ID=None):
     55    def update(self, PAYEE_ID=None, PAYMENT_TYPE=None):
    5656        if PAYEE_ID == None:
    5757            self.output = '-1'
     
    6464        if real_ip  and self.ACCEPTED_IP:
    6565            if real_ip not in  self.ACCEPTED_IP:
    66                 self.output = '-4'
     66                self.output = '-2'
    6767                return
     68        if PAYMENT_TYPE not in ('SCHOOL-FEE', 'ACCEPTANCE-FEE', 'APPLICATION-FEE'):
     69            self.output = '-3'
     70            return
    6871
    6972        # It seems eTranzact sends a POST request with an empty body but the URL
     
    7679        #        PAYEE_ID = self.request['QUERY_STRING'].split('=')[1]
    7780        #    except:
    78         #        self.output = '-2'
     81        #        self.output = '-4'
    7982        #        return
    8083
     
    8386        if len(results) != 1:
    8487            self.output = '-1'
     88            return
     89        if PAYMENT_TYPE == 'SCHOOL-FEE' \
     90            and not results[0].p_category.startswith('schoolfee'):
     91            self.output = '-5'
     92            return
     93        if PAYMENT_TYPE == 'ACCEPTANCE-FEE' \
     94            and not results[0].p_category == 'clearance':
     95            self.output = '-6'
     96            return
     97        if PAYMENT_TYPE == 'APPLICATION-FEE' \
     98            and not results[0].p_category == 'application':
     99            self.output = '-7'
    85100            return
    86101        try:
     
    95110            level = owner.current_level
    96111        except (TypeError, AttributeError):
    97             self.output = '-3'
     112            self.output = '-8'
    98113            return
    99114        amount = results[0].amount_auth
  • main/waeup.aaue/trunk/src/waeup/aaue/etranzact/tests.py

    r10932 r10937  
    7474
    7575    def test_webservice(self):
    76         self.browser.open('http://localhost/app/feerequest?PAYEE_ID=%s' % self.p_id)
     76        self.browser.open(
     77            'http://localhost/app/feerequest?PAYEE_ID=%s&PAYMENT_TYPE=SCHOOL-FEE'
     78            % self.p_id)
    7779        self.assertEqual(self.browser.contents,
    7880            # Version 1
     
    105107            'PhoneNumber=1234' % self.p_id)
    106108
     109        self.browser.open('http://localhost/app/feerequest')
     110        self.assertEqual(self.browser.contents, '-1')
    107111        self.browser.open('http://localhost/app/feerequest?NONSENSE=nonsense')
    108112        self.assertEqual(self.browser.contents, '-1')
     113        self.browser.open(
     114            'http://localhost/app/feerequest?PAYEE_ID=%s&PAYMENT_TYPE=NONSENSE'
     115            % self.p_id)
     116        self.assertEqual(self.browser.contents, '-3')
     117        self.browser.open(
     118            'http://localhost/app/feerequest?PAYEE_ID=%s'
     119            % self.p_id)
     120        self.assertEqual(self.browser.contents, '-3')
     121        self.browser.open(
     122            'http://localhost/app/feerequest?PAYEE_ID=%s&PAYMENT_TYPE=ACCEPTANCE-FEE'
     123            % self.p_id)
     124        self.assertEqual(self.browser.contents, '-6')
     125        self.browser.open(
     126            'http://localhost/app/feerequest?PAYEE_ID=%s&PAYMENT_TYPE=APPLICATION-FEE'
     127            % self.p_id)
     128        self.assertEqual(self.browser.contents, '-7')
     129
    109130
    110131    @external_test
Note: See TracChangeset for help on using the changeset viewer.