Ejemplo n.º 1
0
    def test_transaction(self):
        # -----
        # Positional set (bitmap, transaction_id, terminal_id)
        bitmap = '6016'
        transaction_id = '0020'
        terminal_id = '7aedf2340a'

        # Common financial set (PAN, cardholder_name, expiry_date, PIN)
        PAN = "54024372342320346"
        cardholder_name = "ERICBTHEPRESIDENT"
        expiry_date = "2205"
        PIN = "9873"
        # -----

        # Test set ()
        result = Transaction.transaction(bitmap=bitmap,
                                         transaction_id=transaction_id,
                                         terminal_id=terminal_id)
        self.assertEqual(result[:-22], "000201601600207aedf2340a")

        # Sale/refund set (...positional set, ...common financial set, amount, transaction_no)
        amount = 1325.43
        transaction_no = 123

        result = Transaction.transaction(bitmap=bitmap,
                                         transaction_id=transaction_id,
                                         PAN=PAN,
                                         cardholder_name=cardholder_name,
                                         expiry_date=expiry_date,
                                         PIN=PIN,
                                         amount=amount,
                                         transaction_no=transaction_no,
                                         terminal_id=terminal_id)
        self.assertEqual(
            result[:-22],
            "0002016016002054024372342320346344552494342544845505245534944454e542205987300000013254300000001237aedf2340a"
        )

        # Balance set (...positional_set, ...common financial set)
        result = Transaction.transaction(bitmap=bitmap,
                                         transaction_id=transaction_id,
                                         PAN=PAN,
                                         cardholder_name=cardholder_name,
                                         expiry_date=expiry_date,
                                         PIN=PIN,
                                         terminal_id=terminal_id)
        self.assertEqual(
            result[:-22],
            "0002016016002054024372342320346344552494342544845505245534944454e54220598737aedf2340a"
        )

        # Upload set (...positional set, ...common financial set, transaction_no, RRN)
        RRN = 3
        result = Transaction.transaction(bitmap=bitmap,
                                         transaction_id=transaction_id,
                                         PAN=PAN,
                                         cardholder_name=cardholder_name,
                                         expiry_date=expiry_date,
                                         transaction_no=transaction_no,
                                         RRN=RRN,
                                         terminal_id=terminal_id)
        self.assertEqual(
            result[:-22],
            "0002016016002054024372342320346344552494342544845505245534944454e54220500000001230000000000037aedf2340a"
        )

        # Settlement set (text_data)
        text_data = '01200003242760010000005672'
        result = Transaction.transaction(bitmap=bitmap,
                                         transaction_id=transaction_id,
                                         text_data=text_data,
                                         terminal_id=terminal_id)
        self.assertEqual(result[:-22],
                         "00020160160020012000032427600100000056727aedf2340a")