Sistema para criação e processamento de pagamentos.
- Flask 2.3.0 - Framework web Python
- Flask-SQLAlchemy 3.1.1 - ORM para gerenciamento do banco de dados
- Flask-SocketIO 5.3.6 - Comunicação em tempo real via WebSocket
- QRCode 7.4.2 - Geração de códigos QR para pagamentos
- Pillow 10.4.0 - Processamento de imagens
- SQLite - Banco de dados local
- Pytest - Framework para testes unitários
├── app.py # Aplicação principal Flask
├── db_models/ # Modelos de dados (ORM)
│ └── payment.py
├── docs/
├── payments/ # Lógica de processamento de pagamentos
│ └── pix.py
├── repository/ # Camada de acesso a dados
│ └── database.py
├── templates/ # Templates HTML
├── static/ # Arquivos estáticos (CSS, imagens)
└── tests/ # Testes unitários
- Repository Pattern - Separação da lógica de acesso a dados
- MVC (Model-View-Controller) - Organização da aplicação
- Factory Pattern - Inicialização da aplicação Flask
- Python 3.8+
- pip (gerenciador de pacotes Python)
- Clone o repositório:
git clone https://github.com/DimitriSchulzAmado/payment-system-api.git
cd payment-system- Instale as dependências:
pip install -r requirements.txt- (Opcional) Integre a documentação Swagger:
# Veja instruções detalhadas em SWAGGER_INTEGRATION.md
# Para visualização rápida, acesse https://editor.swagger.io/ e carregue swagger.yaml- Execute a aplicação:
python app.py- Acesse a aplicação em
http://localhost:5000
O banco SQLite é criado automaticamente na primeira execução no diretório instance/database.db.
- Criação de pagamentos PIX via API REST
- Geração automática de QR Code para pagamentos
- Confirmação de pagamentos em tempo real
- Interface web para visualização de pagamentos
- WebSocket para notificações em tempo real
- Swagger UI:
http://localhost:5000/api/docs - Especificação JSON:
http://localhost:5000/api/swagger.json
POST /payments/pix- Criar novo pagamento PIXGET /payments/pix/qr_code/<file_name>- Obter imagem do QR CodeGET /payments/pix/confirmation- Confirmar pagamentoGET /payments/pix/<payment_id>- Visualizar página de pagamento
connect- Cliente conecta ao servidordisconnect- Cliente desconecta do servidorpayment-confirmed-{payment_id}- Evento emitido quando pagamento é confirmado
Execute os testes com:
pytest tests/test_pix.py -v