From 563ee516b50cc71037d7e137635c353405719146 Mon Sep 17 00:00:00 2001 From: Victor Hugo Date: Sat, 22 Sep 2012 14:16:16 -0300 Subject: [PATCH 1/5] checkout transparente + dados do pagador --- .gitignore | 1 + README.md | 8 ++++++-- moipy/moip.py | 22 +++++++++++++++++++--- setup.py | 4 ++-- test/__init__.py | 0 test/test.py | 34 ++++++++++++++++++++++++++++++++++ 6 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 test/__init__.py 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..dd992a0 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 ------------ @@ -52,6 +53,10 @@ Basta importar a classe do MoIP e sair brincando :-) 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 @@ -64,7 +69,6 @@ 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..55674e9 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','***REMOVED***'], 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..abbba96 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='***REMOVED***',key='***REMOVED***') + 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='***REMOVED***',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 From 18cb57b01860d714c3e2a81dce87f44219f06768 Mon Sep 17 00:00:00 2001 From: Victor Hugo Date: Sat, 22 Sep 2012 14:21:41 -0300 Subject: [PATCH 2/5] Update README.md --- README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index dd992a0..e72b5c7 100644 --- a/README.md +++ b/README.md @@ -53,17 +53,18 @@ Basta importar a classe do MoIP e sair brincando :-) ChangeLog ---------- - v0.3 - - Suporte a checkout transparente - - Adição dos dados do Pagador - - Teste do envio de intrução para checkout transparente + +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 ------ From ddbeab92436f8492c41ac3747709d2f22b848f72 Mon Sep 17 00:00:00 2001 From: Victor Hugo Date: Sat, 22 Sep 2012 14:29:09 -0300 Subject: [PATCH 3/5] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index e72b5c7..18c2f50 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,17 @@ 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 ---------- From b4518cc4a694d7db47c1e4b1964b44a53849ee78 Mon Sep 17 00:00:00 2001 From: Victor Hugo Date: Sat, 22 Sep 2012 14:41:14 -0300 Subject: [PATCH 4/5] retirano key do teste --- test/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.py b/test/test.py index abbba96..e654c53 100644 --- a/test/test.py +++ b/test/test.py @@ -6,7 +6,7 @@ class MoipTestCase(unittest.TestCase): def setUp(self): self.moip = Moip('Razao do Pagamento') - self.moip.set_credenciais(token='***REMOVED***',key='***REMOVED***') + self.moip.set_credenciais(token='seu token',key='sua key') self.moip.set_ambiente('sandbox') From 837397a6b40a48ad2c40ecf928ef050d6a2ffdd2 Mon Sep 17 00:00:00 2001 From: Victor Hugo Date: Sat, 22 Sep 2012 17:21:37 -0300 Subject: [PATCH 5/5] Update README.md --- README.md | 4 ++-- setup.py | 2 +- test/test.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 18c2f50..b959f09 100644 --- a/README.md +++ b/README.md @@ -38,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') diff --git a/setup.py b/setup.py index 55674e9..36ba025 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ version='0.2', description='Python integration with MoIP payment gateway via API', author=['Herberth Amaral','Ale Borba','Victor'], - author_email=['herberthamaral@gmail.com','ale.alvesborba@gmail.com','***REMOVED***'], + 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/test.py b/test/test.py index e654c53..62c6aea 100644 --- a/test/test.py +++ b/test/test.py @@ -19,7 +19,7 @@ def test_set_pagador(self): 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='***REMOVED***',Apelido='vitalbh',IdPagador='1',EnderecoCobranca=endereco) + self.moip.set_pagador(Nome='Victor',Email='vitalbh@gmail.com',Apelido='vitalbh',IdPagador='1',EnderecoCobranca=endereco) self.moip.envia()