4.4 KiB
4.4 KiB
MongoDB Plans Seed Script
⚠️ IMPORTANTE - LEIA ANTES DE EXECUTAR
Este script cria 2 planos no MongoDB:
- Premium Mensal - Cobrança recorrente mensal
- Premium Anual - Cobrança anual com 20% de desconto
VOCÊ PRECISA ATUALIZAR OS STRIPE PRICE IDs antes de executar em produção!
📋 Pré-requisitos
1. Criar Produto no Stripe
- Acesse Stripe Dashboard
- Crie um produto "QR Rapido Premium"
- Anote o Product ID (ex:
prod_SnfQTxwE3i8r5L)
2. Criar Price IDs no Stripe
Para CADA PAÍS (BR, PY, US), crie 2 preços (mensal e anual):
Brasil (BRL):
- Mensal: R$ 9,90/mês
- No Stripe: "Premium Mensal - Brasil"
- Copie o Price ID:
price_xxxxx_monthly_br
- Anual: R$ 95,04/ano (economia de 20%)
- No Stripe: "Premium Anual - Brasil"
- Copie o Price ID:
price_xxxxx_yearly_br
Paraguai (PYG):
- Mensal: 35.000 Gs/mês
- No Stripe: "Premium Mensal - Paraguay"
- Copie o Price ID:
price_xxxxx_monthly_py
- Anual: 336.000 Gs/ano (economia de 20%)
- No Stripe: "Premium Anual - Paraguay"
- Copie o Price ID:
price_xxxxx_yearly_py
EUA/Internacional (USD):
- Mensal: $1,99/mês
- No Stripe: "Premium Monthly - USA"
- Copie o Price ID:
price_xxxxx_monthly_us
- Anual: $19,10/ano (economia de 20%)
- No Stripe: "Premium Yearly - USA"
- Copie o Price ID:
price_xxxxx_yearly_us
3. Atualizar appsettings.json
Edite appsettings.json (para desenvolvimento/teste):
"Stripe": {
"Plans": {
"Monthly": {
"BR": "price_xxxxx_monthly_br", // ← Cole seu Price ID aqui
"PY": "price_xxxxx_monthly_py", // ← Cole seu Price ID aqui
"US": "price_xxxxx_monthly_us" // ← Cole seu Price ID aqui
},
"Yearly": {
"BR": "price_xxxxx_yearly_br", // ← Cole seu Price ID aqui
"PY": "price_xxxxx_yearly_py", // ← Cole seu Price ID aqui
"US": "price_xxxxx_yearly_us" // ← Cole seu Price ID aqui
}
}
}
Edite appsettings.Production.json (para produção) com os Price IDs de produção (mode live)
🚀 Como Executar
Ambiente Local (Development)
# Se MongoDB estiver rodando localmente
mongosh "mongodb://localhost:27017/QrRapido" Scripts/seed-mongodb-plans.js
Ambiente de Produção
# Conectar ao MongoDB de produção e executar o script
mongosh "mongodb://admin:c4rn31r0@129.146.116.218:27017,141.148.162.114:27017/QrRapido?replicaSet=rs0&authSource=admin" Scripts/seed-mongodb-plans.js
OU via SSH no servidor:
# Conectar ao servidor
ssh ubuntu@141.148.162.114
# Copiar o script para o servidor
# (você pode usar scp ou copiar o conteúdo manualmente)
# Executar o script
mongosh "mongodb://admin:c4rn31r0@localhost:27017/QrRapido?authSource=admin" seed-mongodb-plans.js
✅ Verificar se Funcionou
# Conectar ao MongoDB
mongosh "mongodb://admin:c4rn31r0@129.146.116.218:27017,141.148.162.114:27017/QrRapido?replicaSet=rs0&authSource=admin"
# Verificar os planos inseridos
use QrRapido
db.Plans.find().pretty()
Você deve ver um documento com:
name: Nomes em pt-BR, es-PY, enstripePriceId: O Price ID padrão do StripepricesByCountry: Preços por país (BR, PY, US)isActive: true
🔧 Troubleshooting
Erro: "Authentication failed"
- Verifique se a senha do MongoDB está correta no connection string
- Verifique se o usuário
admintem permissões no bancoQrRapido
Erro: "MongoServerError: E11000 duplicate key error"
- Já existe um plano com o mesmo ID
- Execute
db.Plans.deleteMany({})primeiro para limpar (CUIDADO em produção!)
Stripe retorna erro "No such price"
- Você não atualizou os
stripePriceIdno script - Os Price IDs no script não existem no seu Stripe Dashboard
- Verifique se está usando as chaves corretas (test vs live mode)
📝 Próximos Passos
Após executar este script:
- ✅ Verificar no MongoDB que o plano foi criado:
db.Plans.find() - ✅ Testar o fluxo de assinatura em
/Pagamento/SelecaoPlano - ✅ Confirmar que o Stripe recebe o checkout com o Price ID correto
- ✅ Testar o webhook após pagamento bem-sucedido