Projeto para construir um Wrapper Python para a API do Pagseguro versão 3
Projeto escrito com Python 3. A linguagem utilizada também para codificar será o português por duas razões:
- O Pagseguro em si é um Gateway brasileiro com sua documentação em português
- Essa lib está sendo desenvolvida como projeto prático da turma Luciano Ramalho do curso Python Pro
Barth Junior (@barthjr), Renzo Nuccitelli (@renzon), Tânio Scherer (@taniodev)
Instale o pipenv:
pip install pipenv
Para instalar a lib com pipenv:
pipenv install pygseguro
Utilize essa configuração se as chamadas costumam usar sempre a mesma configuração
>>> from pygseguro import set_config_padrao, get_config_padrao, ConfigConta
>>> get_config_padrao()
>>> cfg = ConfigConta(email='[email protected]', token='blah')
>>> set_config_padrao(cfg)
>>> get_config_padrao()
ConfigConta(email='[email protected]', token='****')
>>> cfg.construir_url('/caminho')
'https://ws.pagseguro.uol.com.br/[email protected]&token=blah'
Você pode usar uma configuração por appId e appToken:
>>> from pygseguro import ConfigApp
>>> cfg_app = ConfigApp(app_id='1234', app_key='xpto', )
>>> set_config_padrao(cfg_app)
>>> get_config_padrao()
ConfigApp(app_id='1234', app_key='****')
>>> cfg_app.construir_url('/outro_caminho')
'https://ws.pagseguro.uol.com.br/outro_caminho?appID=1234&appKey=xpto'
Criando planos de pagamento recorrente automático
>>> from pygseguro import SANDBOX, CriadorPlanoRecorrente
>>> from datetime import datetime
>>> from decimal import Decimal
>>> set_config_padrao(ConfigConta('[email protected]', '396FC29DE4A54967BF6DCADE65100E88', SANDBOX))
>>> criador = CriadorPlanoRecorrente()
>>> plano_identificacao = criador.plano_automatico_idenficacao(
... 'SEU_CODIGO_DE_REFERENCIA',
... 'Plano Turma de Curso de Python',
... 'Plano de pagamento da turma Luciano Ramalho',
... '[email protected]')
>>> expiracao = plano_identificacao.expiracao_em_meses(meses=10)
>>> valores_automaticos = expiracao.valores_automaticos(Decimal('180.00'), Decimal('30.39'))
>>> freq_mensal = valores_automaticos.frequencia_mensal()
>>> trial = freq_mensal.trial(dias=2)
>>> limite_de_uso = trial.limite_de_uso(100)
>>> urls_gancho = limite_de_uso.urls_gancho(
... 'https://seusite.com.br/obrigado', 'https://seusite.com.br/revisar', 'https://seusite.com.br/cancelar'
... )
>>> plano_recorrente=urls_gancho.criar_no_pagseguro()
>>> isinstance(plano_recorrente.codigo, str)
True
>>> isinstance(plano_recorrente.criacao, datetime)
True
>>> plano_recorrente = CriadorPlanoRecorrente().plano_automatico_idenficacao(
... 'SEU_CODIGO_DE_REFERENCIA',
... 'Plano Turma de Curso de Python',
... 'Plano de pagamento da turma Luciano Ramalho',
... '[email protected]'
... ).expiracao_em_meses(meses=10).valores_automaticos(
... Decimal('180.00'), Decimal('30.39')
... ).frequencia_mensal().trial(dias=2).limite_de_uso(100).urls_gancho(
... 'https://seusite.com.br/obrigado', 'https://seusite.com.br/revisar', 'https://seusite.com.br/cancelar'
... ).criar_no_pagseguro()
>>> isinstance(plano_recorrente.codigo, str)
True
>>> isinstance(plano_recorrente.criacao, datetime)
True
Todo código segue a PEP8, com exceção do tamanho da linha, que aceita 120 caracteres. Toda função/classe/método/módulo deve possuir docstrings Toda função/método deve ter annotations
- Faça o fork do projeto e clone or projeto:
git clone [email protected]:<seu_usuario>/pygseguro.git
- Instale o pipenv:
pip install pipenv
- Instale as dependências de dev:
pipenv install -d
- Desenvolva a feature com testes
- Rode os teste localmente:
pipenv run pytest
- Envie o pull request com teste em um só commit
- Envie o PR para revisão
- Depois de revisado e corrigido, o PR será aceito e a lib postada no PyPi
- Coloque seu nome e username na porção contribuidores