diff --git a/.gitignore b/.gitignore index 900205c..072a880 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ dist/** .pydevproject .settings nbproject/ +.idea \ No newline at end of file diff --git a/README.md b/README.md index 5f073de..b959f09 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,9 @@ Camada de abstração para integração via API com o MoIP em Python. - Author: Hebert Amaral - Contributor: Ale Borba - Contributor: Igor Hercowitz + - Contributor: Victor Hugo - - Version: v0.2 + - Version: v0.3 Dependências ------------ @@ -37,9 +38,9 @@ Uso Basta importar a classe do MoIP e sair brincando :-) - from moipy import MoIP + from moipy import Moip - moip = MoIP('Razao do Pagamento') + moip = Moip('Razao do Pagamento') moip.set_credenciais(token='seu_token',key='sua_key') moip.set_ambiente('sandbox') @@ -50,21 +51,36 @@ Basta importar a classe do MoIP e sair brincando :-) print moip.get_resposta() # {sucesso:'Sucesso','token':'KJHSDASKD392847293AHFJKDSAH'} + +Para checkout transparente basta chamar: + + self.moip.set_checkout_transparente() + +neste caso é obrigatorio passar os dados do pagador: + + endereco = dict(Logradouro='Rua xxxxx',Numero='222',Bairro='xxxx',Cidade='xxxx',Estado='xx',CEP='xxxxxx',TelefoneFixo='xxxxxxxxxx') + self.moip.set_pagador(Nome='xxxx',Email='xxxxxx',Apelido='vitalbh',IdPagador='x',EnderecoCobranca=endereco) + + ChangeLog ---------- + +v0.3 + - Suporte a checkout transparente + - Adição dos dados do Pagador + - Teste do envio de intrução para checkout transparente - v0.2 - - Refatorações de código - - Retirada dos DocTests +v0.2 + - Refatorações de código + - Retirada dos DocTests - v0.1 - - First version +v0.1 + - First version ToDo ------ - Aplicar testes automatizados usando unittest - - Incluir dados do pagador - Validar campos diff --git a/moipy/moip.py b/moipy/moip.py index 4692846..c2b781d 100644 --- a/moipy/moip.py +++ b/moipy/moip.py @@ -83,7 +83,23 @@ def set_recebedor(self,login_moip,email,apelido): self._monta_xml(self.xml_node, unique=True, InstrucaoUnica=dict(Recebedor=dict(LoginMoip=login_moip, Email=email, Apelido=apelido))) return self - + + def set_pagador(self, **pagador): + + if not 'EnderecoCobranca' in pagador: + return False + + if not 'Pais' in pagador['EnderecoCobranca']: + pagador['EnderecoCobranca']['Pais'] = 'BRA' + + self._monta_xml(self.xml_node, unique=True, InstrucaoUnica=dict(Pagador=pagador)) + + return self + + def set_checkout_transparente(self): + + instrucao = self._monta_xml(self.xml_node, unique=True, InstrucaoUnica=dict()) + instrucao.find('InstrucaoUnica').set('TipoValidacao','Transparente') def envia(self): resposta = RespostaMoIP() @@ -91,7 +107,7 @@ def envia(self): passwd = self.token + ":" + self.key passwd64 = base64.b64encode(passwd) - + curl = pycurl.Curl() curl.setopt(pycurl.URL,self.url) curl.setopt(pycurl.HTTPHEADER,["Authorization: Basic " + passwd64]) @@ -102,7 +118,7 @@ def envia(self): curl.setopt(pycurl.WRITEFUNCTION,resposta.callback) curl.perform() curl.close() - + self.retorno = resposta.conteudo return self diff --git a/setup.py b/setup.py index c9cf5b7..36ba025 100644 --- a/setup.py +++ b/setup.py @@ -5,8 +5,8 @@ setup(name='Moipy', version='0.2', description='Python integration with MoIP payment gateway via API', - author=['Herberth Amaral','Ale Borba'], - author_email=['herberthamaral@gmail.com','ale.alvesborba@gmail.com'], + author=['Herberth Amaral','Ale Borba','Victor'], + author_email=['herberthamaral@gmail.com','ale.alvesborba@gmail.com','vitalbh@gmail.com'], url='http://labs.moip.com.br/', packages=['moipy'], classifiers=[ diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/test.py b/test/test.py index e69de29..62c6aea 100644 --- a/test/test.py +++ b/test/test.py @@ -0,0 +1,34 @@ +import unittest +from moipy.moip import Moip +import random + +class MoipTestCase(unittest.TestCase): + + def setUp(self): + self.moip = Moip('Razao do Pagamento') + self.moip.set_credenciais(token='seu token',key='sua key') + self.moip.set_ambiente('sandbox') + + + def test_set_pagador(self): + + self.moip.set_checkout_transparente() + self.moip.set_valor('12345') + self.moip.set_data_vencimento('yyyy-mm-dd') + self.moip.set_id_proprio(str(random.randrange(500000))) + + endereco = dict(Logradouro='Rua santa ceia',Numero='222',Bairro='Buritis',Cidade='Belo Horizonte',Estado='MG',CEP='30850170',TelefoneFixo='3125124444') + + self.moip.set_pagador(Nome='Victor',Email='vitalbh@gmail.com',Apelido='vitalbh',IdPagador='1',EnderecoCobranca=endereco) + + self.moip.envia() + + resposta = self.moip.get_resposta() + + self.assertEqual(resposta['sucesso'],'Sucesso') + self.assertIsInstance(resposta['token'],str) + + + + if __name__ == '__main__': + unittest.main() \ No newline at end of file