def test_erro(self):
     erro = xml_to_object(
         open(os.path.join(BASE_DIR, 'xml8.xml')).read()
     )
     self.assertTrue(isinstance(erro, Erro))
     self.assertEqual(erro.codigo, '000')
     self.assertEqual(erro.mensagem, 'Mensagem')
Пример #2
0
    def capturar(self,
                 tid=None,
                 comercial=None,
                 valor=None,
                 taxa_embarque=None):
        """
        Realiza o processo de captura de uma transação.
        """
        if not isinstance(tid, six.string_types):
            raise TypeError('tid precisa ser do tipo string.')
        if not isinstance(comercial, Comercial):
            raise TypeError('comercial precisa ser do tipo Comercial.')
        if valor is not None and not isinstance(valor, six.integer_types):
            raise TypeError('valor precisa ser do tipo inteiro.')

        xml = self.render_template('captura.xml',
                                   id=str(uuid.uuid4()),
                                   tid=tid,
                                   comercial=comercial,
                                   valor=valor,
                                   taxa_embarque=taxa_embarque)
        response = self.session.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(object_data.codigo,
                                                       object_data.mensagem))

        return object_data
Пример #3
0
    def capturar(self, tid=None, comercial=None, valor=None,
                 taxa_embarque=None):
        """
        Realiza o processo de captura de uma transação.
        """
        if not isinstance(tid, six.string_types):
            raise TypeError('tid precisa ser do tipo string.')
        if not isinstance(comercial, Comercial):
            raise TypeError('comercial precisa ser do tipo Comercial.')
        if valor is not None and not isinstance(valor, six.integer_types):
            raise TypeError('valor precisa ser do tipo inteiro.')

        xml = self.render_template(
            'captura.xml', id=str(uuid.uuid4()), tid=tid, comercial=comercial,
            valor=valor, taxa_embarque=taxa_embarque
        )
        response = self.session.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(
                object_data.codigo, object_data.mensagem)
            )

        return object_data
Пример #4
0
 def test_token(self):
     token = xml_to_object(open(os.path.join(BASE_DIR, 'xml4.xml')).read())
     self.assertTrue(isinstance(token, Token))
     self.assertEqual(token.codigo,
                      'HYcQ0MQ39fl8kn9OR7lFsTtxa+wNuM4lqQLUeN5SYZY=')
     self.assertEqual(token.status, 1)
     self.assertEqual(token.numero, '211141******2104')
 def test_token(self):
     token = xml_to_object(
         open(os.path.join(BASE_DIR, 'xml4.xml')).read()
     )
     self.assertTrue(isinstance(token, Token))
     self.assertEqual(
         token.codigo, 'HYcQ0MQ39fl8kn9OR7lFsTtxa+wNuM4lqQLUeN5SYZY='
     )
     self.assertEqual(token.status, 1)
     self.assertEqual(token.numero, '211141******2104')
Пример #6
0
 def test_autorizacao_direta(self):
     transacao = xml_to_object(
         open(os.path.join(BASE_DIR, 'xml1.xml')).read())
     self.assertEqual(transacao.tid, '100699306948372E1001')
     self.assertEqual(transacao.pan,
                      'IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=')
     self.assertEqual(transacao.status, 6)
     self.assertTrue(isinstance(transacao.pedido, Pedido))
     self.assertTrue(isinstance(transacao.pagamento, Pagamento))
     self.assertTrue(isinstance(transacao.autenticacao, Autenticacao))
     self.assertTrue(isinstance(transacao.autorizacao, Autorizacao))
     self.assertTrue(isinstance(transacao.captura, Captura))
 def test_autorizacao_direta(self):
     transacao = xml_to_object(
         open(os.path.join(BASE_DIR, 'xml1.xml')).read()
     )
     self.assertEqual(transacao.tid, '100699306948372E1001')
     self.assertEqual(
         transacao.pan, 'IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0='
     )
     self.assertEqual(transacao.status, 6)
     self.assertTrue(isinstance(transacao.pedido, Pedido))
     self.assertTrue(isinstance(transacao.pagamento, Pagamento))
     self.assertTrue(isinstance(transacao.autenticacao, Autenticacao))
     self.assertTrue(isinstance(transacao.autorizacao, Autorizacao))
     self.assertTrue(isinstance(transacao.captura, Captura))
Пример #8
0
 def test_cancelamento(self):
     transacao = xml_to_object(
         open(os.path.join(BASE_DIR, 'xml7.xml')).read())
     self.assertTrue(isinstance(transacao, Transacao))
     self.assertEqual(transacao.tid, '1006993069484E8B1001')
     self.assertEqual(transacao.pan,
                      'IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=')
     self.assertTrue(isinstance(transacao.cancelamento, Cancelamento))
     self.assertEqual(transacao.cancelamento.codigo, 9)
     self.assertEqual(transacao.cancelamento.mensagem,
                      'Transacao cancelada com sucesso')
     self.assertEqual(transacao.cancelamento.data_hora,
                      '2015-10-06T16:45:10.547-03:00')
     self.assertEqual(transacao.cancelamento.valor, 10000)
Пример #9
0
    def autorizar(self, transacao):
        if not isinstance(transacao, Transacao):
            raise TypeError('transacao precisa ser do tipo Transacao.')

        xml = self.render_template('transacao.xml',
                                   id=str(uuid.uuid4()),
                                   transacao=transacao)
        response = requests.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(object_data.codigo,
                                                       object_data.mensagem))

        return object_data
Пример #10
0
    def autorizar(self, transacao):
        if not isinstance(transacao, Transacao):
            raise TypeError('transacao precisa ser do tipo Transacao.')

        xml = self.render_template(
            'transacao.xml', id=str(uuid.uuid4()), transacao=transacao
        )
        response = requests.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(
                object_data.codigo, object_data.mensagem)
            )

        return object_data
Пример #11
0
 def test_transacao_autenticada(self):
     transacao = xml_to_object(
         open(os.path.join(BASE_DIR, 'xml2.xml')).read())
     self.assertTrue(isinstance(transacao, Transacao))
     self.assertEqual(transacao.tid, '1006993069483CE61001')
     self.assertEqual(transacao.pan,
                      'IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0=')
     self.assertEqual(transacao.status, 0)
     self.assertEqual(
         transacao.url_autenticacao,
         'https://qasecommerce.cielo.com.br/web/index.cbmp?id=5a3a7c089f5299f535dcdd1f502a38ba'
     )
     self.assertTrue(isinstance(transacao.pedido, Pedido))
     self.assertTrue(isinstance(transacao.pagamento, Pagamento))
     self.assertFalse(transacao.autenticacao)
     self.assertFalse(transacao.autorizacao)
     self.assertFalse(transacao.captura)
 def test_cancelamento(self):
     transacao = xml_to_object(
         open(os.path.join(BASE_DIR, 'xml7.xml')).read()
     )
     self.assertTrue(isinstance(transacao, Transacao))
     self.assertEqual(transacao.tid, '1006993069484E8B1001')
     self.assertEqual(
         transacao.pan, 'IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0='
     )
     self.assertTrue(isinstance(transacao.cancelamento, Cancelamento))
     self.assertEqual(transacao.cancelamento.codigo, 9)
     self.assertEqual(
         transacao.cancelamento.mensagem, 'Transacao cancelada com sucesso'
     )
     self.assertEqual(
         transacao.cancelamento.data_hora, '2015-10-06T16:45:10.547-03:00'
     )
     self.assertEqual(transacao.cancelamento.valor, 10000)
 def test_transacao_autenticada(self):
     transacao = xml_to_object(
         open(os.path.join(BASE_DIR, 'xml2.xml')).read()
     )
     self.assertTrue(isinstance(transacao, Transacao))
     self.assertEqual(transacao.tid, '1006993069483CE61001')
     self.assertEqual(
         transacao.pan, 'IqVz7P9zaIgTYdU41HaW/OB/d7Idwttqwb2vaTt8MT0='
     )
     self.assertEqual(transacao.status, 0)
     self.assertEqual(
         transacao.url_autenticacao,
         'https://qasecommerce.cielo.com.br/web/index.cbmp?id=5a3a7c089f5299f535dcdd1f502a38ba'
     )
     self.assertTrue(isinstance(transacao.pedido, Pedido))
     self.assertTrue(isinstance(transacao.pagamento, Pagamento))
     self.assertFalse(transacao.autenticacao)
     self.assertFalse(transacao.autorizacao)
     self.assertFalse(transacao.captura)
Пример #14
0
    def gerar_token(self, comercial=None, cartao=None):
        if not isinstance(comercial, Comercial):
            raise TypeError('comercial precisa ser do tipo Comercial.')

        if not isinstance(cartao, Cartao):
            raise TypeError('cartao precisa ser do tipo Cartao.')

        xml = self.render_template('token.xml',
                                   id=str(uuid.uuid4()),
                                   comercial=comercial,
                                   cartao=cartao)
        response = requests.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(object_data.codigo,
                                                       object_data.mensagem))

        return object_data
Пример #15
0
    def gerar_token(self, comercial=None, cartao=None):
        if not isinstance(comercial, Comercial):
            raise TypeError('comercial precisa ser do tipo Comercial.')

        if not isinstance(cartao, Cartao):
            raise TypeError('cartao precisa ser do tipo Cartao.')

        xml = self.render_template(
            'token.xml', id=str(uuid.uuid4()), comercial=comercial,
            cartao=cartao
        )
        response = requests.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(
                object_data.codigo, object_data.mensagem)
            )

        return object_data
Пример #16
0
    def cancelar(self, tid=None, comercial=None, valor=None):
        if not isinstance(tid, six.string_types):
            raise TypeError('tid precisa ser do tipo string.')
        if not isinstance(comercial, Comercial):
            raise TypeError('comercial precisa ser do tipo Comercial.')
        if valor is not None and not isinstance(valor, six.integer_types):
            raise TypeError('valor precisa ser do tipo inteiro.')

        xml = self.render_template('cancelamento.xml',
                                   id=str(uuid.uuid4()),
                                   tid=tid,
                                   comercial=comercial,
                                   valor=valor)
        response = requests.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(object_data.codigo,
                                                       object_data.mensagem))

        return object_data
Пример #17
0
    def consultar(self, tid=None, comercial=None):
        """
        Retorna os dados de uma transação.
        """
        if not isinstance(tid, six.string_types):
            raise TypeError('tid precisa ser do tipo string.')
        if not isinstance(comercial, Comercial):
            raise TypeError('comercial precisa ser do tipo Comercial.')

        xml = self.render_template('consulta.xml',
                                   id=str(uuid.uuid4()),
                                   tid=tid,
                                   comercial=comercial)
        response = self.session.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(object_data.codigo,
                                                       object_data.mensagem))

        return object_data
Пример #18
0
    def cancelar(self, tid=None, comercial=None, valor=None):
        if not isinstance(tid, six.string_types):
            raise TypeError('tid precisa ser do tipo string.')
        if not isinstance(comercial, Comercial):
            raise TypeError('comercial precisa ser do tipo Comercial.')
        if valor is not None and not isinstance(valor, six.integer_types):
            raise TypeError('valor precisa ser do tipo inteiro.')

        xml = self.render_template(
            'cancelamento.xml', id=str(uuid.uuid4()), tid=tid,
            comercial=comercial, valor=valor
        )
        response = requests.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(
                object_data.codigo, object_data.mensagem)
            )

        return object_data
Пример #19
0
    def consultar(self, tid=None, comercial=None):
        """
        Retorna os dados de uma transação.
        """
        if not isinstance(tid, six.string_types):
            raise TypeError('tid precisa ser do tipo string.')
        if not isinstance(comercial, Comercial):
            raise TypeError('comercial precisa ser do tipo Comercial.')

        xml = self.render_template(
            'consulta.xml', id=str(uuid.uuid4()), tid=tid,
            comercial=comercial
        )
        response = self.session.post(self.base_url, data={'mensagem': xml})
        object_data = xml_to_object(response.text)

        if isinstance(object_data, Erro):
            raise CieloRequestError('{0} - {1}'.format(
                object_data.codigo, object_data.mensagem)
            )

        return object_data
Пример #20
0
 def test_erro(self):
     erro = xml_to_object(open(os.path.join(BASE_DIR, 'xml8.xml')).read())
     self.assertTrue(isinstance(erro, Erro))
     self.assertEqual(erro.codigo, '000')
     self.assertEqual(erro.mensagem, 'Mensagem')