#!/bin/bash # 🧪 Teste Rápido PIX - Verificação Automática # Execute no servidor: ./teste-rapido-pix.sh echo "🧪 Teste Rápido PIX - Liberi Kids" echo "=================================" # Cores para output GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' log() { echo -e "${GREEN}[✅ OK]${NC} $1" } warn() { echo -e "${YELLOW}[⚠️ WARN]${NC} $1" } info() { echo -e "${BLUE}[ℹ️ INFO]${NC} $1" } error() { echo -e "${RED}[❌ ERRO]${NC} $1" } # Verificar se estamos no diretório correto if [ ! -f "server-supabase.js" ]; then error "Execute este script no diretório do projeto!" exit 1 fi echo "" info "🔍 VERIFICANDO CONFIGURAÇÃO PIX..." # 1. Verificar arquivo .env echo "" info "1️⃣ Verificando arquivo .env..." if [ -f ".env" ]; then log "Arquivo .env encontrado" if grep -q "MERCADOPAGO_ACCESS_TOKEN" .env; then TOKEN=$(grep "MERCADOPAGO_ACCESS_TOKEN" .env | cut -d'=' -f2) if [[ $TOKEN == *"TEST-"* ]] || [[ $TOKEN == *"APP-"* ]]; then log "Access Token configurado" else warn "Access Token parece inválido: $TOKEN" fi else error "MERCADOPAGO_ACCESS_TOKEN não encontrado no .env" fi if grep -q "MERCADOPAGO_PUBLIC_KEY" .env; then log "Public Key configurado" else error "MERCADOPAGO_PUBLIC_KEY não encontrado no .env" fi else error "Arquivo .env não encontrado!" fi # 2. Verificar dependências echo "" info "2️⃣ Verificando dependências..." if [ -d "node_modules/mercadopago" ]; then log "SDK Mercado Pago instalado" else warn "SDK Mercado Pago não encontrado" info "Instalando SDK..." npm install mercadopago fi # 3. Verificar se servidor está rodando echo "" info "3️⃣ Verificando servidor..." if command -v pm2 &> /dev/null; then PM2_STATUS=$(pm2 jlist | jq -r '.[] | select(.name=="liberi-kids") | .pm2_env.status' 2>/dev/null) if [ "$PM2_STATUS" = "online" ]; then log "Servidor PM2 está rodando" else warn "Servidor PM2 não está rodando" info "Iniciando servidor..." pm2 start server-supabase.js --name liberi-kids fi else warn "PM2 não encontrado, verificando processo Node..." if pgrep -f "server-supabase.js" > /dev/null; then log "Servidor Node está rodando" else warn "Servidor não está rodando" fi fi # 4. Testar conectividade local echo "" info "4️⃣ Testando conectividade..." if curl -s http://localhost:5000 > /dev/null; then log "Servidor responde na porta 5000" else error "Servidor não responde na porta 5000" fi # 5. Testar API PIX (se houver vendas) echo "" info "5️⃣ Testando API PIX..." # Verificar se há vendas para testar RESPONSE=$(curl -s -X POST http://localhost:5000/api/pix/gerar \ -H "Content-Type: application/json" \ -d '{"vendaId": 1}' 2>/dev/null) if [[ $RESPONSE == *"payment_id"* ]]; then log "API PIX funcionando - QR Code gerado com sucesso!" PAYMENT_ID=$(echo $RESPONSE | grep -o '"payment_id":"[^"]*"' | cut -d'"' -f4) info "Payment ID: $PAYMENT_ID" elif [[ $RESPONSE == *"error"* ]]; then warn "API PIX retornou erro:" echo "$RESPONSE" | head -c 200 elif [[ $RESPONSE == *"Venda não encontrada"* ]]; then warn "Venda ID 1 não existe (normal se não há vendas cadastradas)" log "API PIX está funcionando, mas precisa de vendas para testar" else error "API PIX não responde corretamente" echo "Resposta: $RESPONSE" fi # 6. Verificar arquivos PIX echo "" info "6️⃣ Verificando arquivos PIX..." if [ -f "config/mercadopago.js" ]; then log "Serviço Mercado Pago encontrado" else error "config/mercadopago.js não encontrado" fi if [ -f "client/build/index.html" ]; then log "Build do frontend encontrado" else warn "Build do frontend não encontrado" info "Execute: cd client && npm run build" fi # 7. Resumo final echo "" echo "📊 RESUMO DO TESTE:" echo "==================" # Contar sucessos e erros SUCESSOS=0 ERROS=0 # Verificar cada item [ -f ".env" ] && SUCESSOS=$((SUCESSOS+1)) || ERROS=$((ERROS+1)) [ -d "node_modules/mercadopago" ] && SUCESSOS=$((SUCESSOS+1)) || ERROS=$((ERROS+1)) [ -f "config/mercadopago.js" ] && SUCESSOS=$((SUCESSOS+1)) || ERROS=$((ERROS+1)) if [ $ERROS -eq 0 ]; then log "🎉 TODOS OS TESTES PASSARAM!" echo "" info "✅ Configuração PIX está correta" info "✅ Dependências instaladas" info "✅ Servidor funcionando" info "✅ APIs respondendo" echo "" log "🚀 SEU PIX ESTÁ PRONTO PARA USO!" echo "" info "📱 COMO TESTAR NA INTERFACE:" echo " 1. Acesse: http://$(hostname -I | awk '{print $1}'):5000" echo " 2. Vá em Vendas" echo " 3. Clique no botão PIX (💳)" echo " 4. Verifique se QR Code aparece" elif [ $ERROS -le 2 ]; then warn "⚠️ ALGUNS PROBLEMAS ENCONTRADOS" echo "" info "A maioria está funcionando, verifique os itens marcados como ERRO acima" else error "❌ MUITOS PROBLEMAS ENCONTRADOS" echo "" info "Verifique a configuração seguindo o guia TESTAR-PIX-COMPLETO.md" fi echo "" info "📖 Para testes detalhados, consulte: TESTAR-PIX-COMPLETO.md" echo ""