Interactive Stripe setup wizard. Use when implementing payments. The agent will ask for keys, products, and configure everything automatically.
Esta skill configura a integração completa do Stripe no seu projeto. O agente vai guiar você através de um setup interativo.
Quando o usuário solicitar configurar o Stripe, siga este fluxo OBRIGATÓRIO:
Pergunte ao usuário:
Para configurar o Stripe, preciso das suas chaves da API. Você pode encontrá-las em: https://dashboard.stripe.com/apikeys
Por favor, me forneça:
- Publishable Key (pklive... ou pktest...)
- Secret Key (sklive... ou sk...)
Aguarde as chaves antes de prosseguir.
Após receber as chaves, pergunte:
Agora preciso entender seus produtos. Me diga:
- Tipo de cobrança: Assinatura (recorrente) ou pagamento único?
- Quais planos/produtos você quer oferecer?
Exemplo de resposta:
- Assinatura mensal
- Plano Starter: R$ 29/mês (5 projetos, suporte email)
- Plano Pro: R$ 99/mês (ilimitado, suporte prioritário)
- Plano Enterprise: R$ 299/mês (tudo + SLA)
Com as informações coletadas, gere o script para criar os produtos:
// scripts/setup-stripe-products.js
import Stripe from 'stripe'
const stripe = new Stripe('SK_KEY_AQUI')
async function setupProducts() {
const products = [
// Substituir com os produtos do usuário
{
name: 'Plano Starter',
description: '5 projetos, suporte email',
price: 2900, // R$ 29,00 em centavos
interval: 'month',
features: ['5 projetos', 'Suporte email', '1GB storage'],
},
{
name: 'Plano Pro',
description: 'Ilimitado, suporte prioritário',
price: 9900, // R$ 99,00 em centavos
interval: 'month',
features: ['Projetos ilimitados', 'Suporte prioritário', '10GB storage'],
},
]
console.log('Criando produtos no Stripe...\n')
for (const product of products) {
const stripeProduct = await stripe.products.create({
name: product.name,
description: product.description,
metadata: { features: JSON.stringify(product.features) },
})
const stripePrice = await stripe.prices.create({
product: stripeProduct.id,
unit_amount: product.price,
currency: 'brl',
recurring: product.interval ? { interval: product.interval } : undefined,
})
console.log(`✓ ${product.name}`)
console.log(` Product ID: ${stripeProduct.id}`)
console.log(` Price ID: ${stripePrice.id}\n`)
}
console.log('Produtos criados com sucesso!')
}
setupProducts().catch(console.error)
Instrua o usuário a executar: bun run scripts/setup-stripe-products.js
Após executar o script, peça:
O script gerou os Price IDs. Por favor, me envie os IDs gerados. Exemplo: price_1ABC123...
Com as chaves e Price IDs, configure os arquivos de ambiente:
Backend: .env.development e .env.production
# .env.development (chaves de teste)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
# .env.production (chaves de produção)
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
Frontend: .env.development e .env.production
# .env.development
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_...
# .env.production
VITE_STRIPE_PUBLISHABLE_KEY=pk_live_...
Gere a migration para adicionar campos do Stripe:
// database/schema.js - adicionar aos users
stripeCustomerId: text('stripe_customer_id').unique(),
stripeSubscriptionId: text('stripe_subscription_id').unique(),