# Sistema Centralizado de Pagamentos Sistema SaaS para gerenciar pagamentos, renovações e liberações de múltiplas aplicações web através de uma única integração com o Mercado Pago. ## 🚀 Funcionalidades - ✅ Cadastro de múltiplas aplicações - ✅ Integração única com Mercado Pago - ✅ Criação de pagamentos via API REST - ✅ Webhook centralizado para notificações - ✅ Callbacks automáticos para aplicações - ✅ Renovação automática de planos - ✅ Painel administrativo completo - ✅ Sistema de logs e auditoria - ✅ Suporte a PIX, Cartão e Boleto ## 📋 Requisitos - PHP 7.4 ou superior - MySQL 5.7 ou MariaDB 10.2+ - Extensões PHP: PDO, cURL, JSON - Servidor web (Apache/Nginx) - Conta no Mercado Pago com credenciais de API ## 🔧 Instalação ### 1. Clone ou faça upload dos arquivos Faça upload de todos os arquivos para o servidor Hostinger. ### 2. Configure o banco de dados Execute o script SQL para criar as tabelas: ```bash mysql -u usuario -p nome_banco < database/schema.sql ``` Ou importe via phpMyAdmin. ### 3. Configure as variáveis de ambiente Crie um arquivo `.env` na raiz (ou configure diretamente nos arquivos de config): ```env MP_ACCESS_TOKEN=seu_access_token_mercado_pago MP_PUBLIC_KEY=sua_public_key_mercado_pago MP_WEBHOOK_SECRET=seu_webhook_secret MP_SANDBOX=true BASE_URL=https://academia1.delivey.top APP_SECRET_KEY=chave_secreta_aleatoria JWT_SECRET=chave_jwt_aleatoria ``` **Importante:** Altere as credenciais padrão do painel admin em `admin/index.php`. ### 4. Configure o Webhook no Mercado Pago 1. Acesse o painel do Mercado Pago 2. Vá em Configurações > Webhooks 3. Adicione a URL: `https://academia1.delivey.top/webhook` 4. Selecione os eventos: `payment` ### 5. Configure os Cron Jobs Adicione ao crontab do servidor: ```cron # Verificação de renovações (a cada 5 minutos) */5 * * * * php /caminho/completo/cron/renewal_check.php # Reprocessar callbacks falhados (a cada 15 minutos) */15 * * * * php /caminho/completo/cron/retry_callbacks.php ``` ## 📖 Uso da API ### Criar um Pagamento ```bash POST /api/payments Content-Type: application/json X-Application-Token: token_secreto_da_aplicacao { "application_identifier": "minha-app", "client_id": "user123", "payment_type": "initial", "payer_email": "cliente@email.com", "payer_name": "Nome do Cliente" } ``` **Resposta:** ```json { "payment": { "id": 1, "application_id": 1, "client_id": "user123", "status": "pending", "amount": "99.90" }, "preference": { "id": "123456789", "init_point": "https://www.mercadopago.com.br/checkout/v1/redirect?pref_id=..." }, "checkout_url": "https://www.mercadopago.com.br/checkout/v1/redirect?pref_id=..." } ``` ### Cadastrar uma Aplicação ```bash POST /api/applications Content-Type: application/json { "name": "Minha Aplicação", "identifier": "minha-app", "value": 99.90, "renewal_period": "monthly", "callback_url": "https://minhaapp.com/webhook/payment", "active": true } ``` **Resposta:** ```json { "id": 1, "name": "Minha Aplicação", "identifier": "minha-app", "secret_token": "token_gerado_automaticamente", "value": "99.90", "renewal_period": "monthly", "callback_url": "https://minhaapp.com/webhook/payment", "active": 1 } ``` ### Receber Callback na Aplicação Quando um pagamento é aprovado, o sistema enviará um POST para a `callback_url` configurada: ```json { "client_id": "user123", "application_id": "minha-app", "payment_id": 1, "status": "approved", "expires_at": "2024-02-15 10:30:00", "renewal_id": 1, "timestamp": 1705316400, "signature": "hmac_signature_para_validacao" } ``` **Validação do Callback:** ```php $security = new Security(); $isValid = $security->validateHmac( $callbackData, $callbackData['signature'], $secretToken ); ``` ## 🔐 Segurança - Tokens secretos únicos por aplicação - Assinatura HMAC nos callbacks - Validação de webhooks do Mercado Pago - Sanitização de inputs - Logs de todas as operações - Proteção contra SQL Injection (PDO prepared statements) ## 🎨 Painel Administrativo Acesse: `https://academia1.delivey.top/admin/` **Credenciais padrão:** - Usuário: `admin` - Senha: `admin123` ⚠️ **Altere essas credenciais em produção!** O painel permite: - Gerenciar aplicações - Visualizar pagamentos - Acompanhar renovações - Consultar logs - Configurar o sistema ## 📁 Estrutura de Diretórios ``` pagamento/ ├── admin/ # Painel administrativo ├── api/ # Endpoints da API REST ├── config/ # Arquivos de configuração ├── cron/ # Scripts de cron jobs ├── database/ # Schema do banco de dados ├── logs/ # Arquivos de log ├── src/ # Classes principais ├── webhook/ # Webhook do Mercado Pago ├── .htaccess # Configurações Apache └── README.md # Este arquivo ``` ## 🔄 Fluxo de Pagamento 1. **Aplicação** cria pagamento via API 2. **Sistema** cria preferência no Mercado Pago 3. **Cliente** é redirecionado para checkout 4. **Mercado Pago** processa pagamento 5. **Webhook** recebe notificação 6. **Sistema** atualiza status e processa renovação 7. **Callback** é enviado para aplicação 8. **Aplicação** libera acesso/renovação ## 🛠️ Manutenção ### Logs Os logs são salvos em: - Banco de dados: tabela `logs` - Arquivos: `logs/app_YYYY-MM-DD.log` ### Backup Faça backup regular do banco de dados: ```bash mysqldump -u usuario -p nome_banco > backup_$(date +%Y%m%d).sql ``` ## 📝 Licença Este sistema foi desenvolvido para uso interno. ## 🆘 Suporte Para problemas ou dúvidas: 1. Verifique os logs em `admin/?page=logs` 2. Consulte a documentação do Mercado Pago 3. Verifique as configurações em `admin/?page=settings` ## 🔄 Atualizações Futuras - [ ] Sistema de assinaturas recorrentes - [ ] Dashboard com gráficos - [ ] Exportação de relatórios - [ ] API de webhooks para aplicações - [ ] Sistema de cupons/descontos - [ ] Multi-moeda - [ ] Notificações por email