Prompts prontos
Copie, cole no seu assistente e substitua os trechos entre colchetes. Anexe o OpenAPI (openapi.yaml) à conversa: ele é a fonte da verdade.
Prompt base (contexto)
Você vai gerar código que integra com a API do SharkPay (gateway de pagamentos).
Regras:
1. Use SOMENTE endpoints, parâmetros e campos do OpenAPI anexo. Se algo não estiver lá, diga que não existe — não invente.
2. Não existem: ambiente sandbox, endpoint de reembolso/cancelamento, escopos de token, recorrência, split.
3. Autenticação: POST /api/auth com Basic (chave pública:secreta) -> token Bearer; renove ao receber 401.
4. Segredos apenas por variáveis de ambiente SHARKPAY_BASE_URL, SHARKPAY_PUBLIC_KEY, SHARKPAY_SECRET_KEY. Nunca em código, logs ou front-end.
5. Toda criação (POST) envia Idempotency-Key derivada do pedido. Em timeout/5xx/429 repita a MESMA chave com backoff exponencial e jitter.
6. Valores monetários: enviar número com ponto; ler como string decimal. Nunca usar float para cálculo.
7. Webhook: verificar SharkPay-Signature (t=,v1=) com HMAC-SHA256 de "t.corpo" sobre o corpo BRUTO, comparação em tempo constante, tolerância de 300 s, deduplicar por id.
8. Confirme pagamentos por webhook ou consulta no servidor, nunca pelo navegador do cliente.
9. Entregue também testes automatizados (mocks de HTTP) e cite o operationId de cada chamada.Pedidos por tarefa
Node.js (Express): cobrança Pix + webhook
Com o contexto acima, escreva um módulo Node.js 20 (ESM, sem dependências além de express) com:
- função criarCobrancaPix(pedido) que obtém/renova token, chama createPixCharge com Idempotency-Key "pix-"+pedido.id e retorna {reference, copy, qrcode};
- rota POST /webhooks/sharkpay que valida a assinatura sobre o corpo bruto, deduplica por evt id (Map em memória, com comentário sobre usar banco) e marca o pedido como pago em invoice.paid;
- testes com node:test e fetch mockado cobrindo: 401 com renovação de token, repetição com mesma chave após 500, assinatura inválida, evento duplicado.Python (FastAPI)
Com o contexto acima, escreva um serviço Python 3.11 com FastAPI e httpx que expõe POST /pedidos/{id}/pagar (cria cobrança Pix) e POST /webhooks/sharkpay (verifica assinatura com hmac.compare_digest sobre request.body()). Inclua testes pytest com respx simulando 200, 422, 429 (Retry-After) e 500.PHP / Laravel
Com o contexto acima, crie um service Laravel 11 SharkPayClient (Http facade, token em cache até expires_in) e um controller de webhook com middleware de verificação de assinatura. Inclua testes Feature com Http::fake. Não use env() fora de config/.Conciliação
Escreva um job diário que lista cobranças PENDING com mais de 15 minutos (listInvoices com start_date/end_date e paginação limit=50), consulta cada uma (getInvoiceByRef) respeitando 60 req/min e atualiza o status local de forma idempotente.Revisão de código gerado
Revise este código de integração com o SharkPay e liste problemas de segurança e corretude: segredos hardcoded, falta de Idempotency-Key, retentativa com nova chave, float em valores, verificação de assinatura sobre JSON reserializado, comparação não constante, ausência de tolerância de timestamp, confiança no redirecionamento do cliente, logs com dados de cartão, rotas inventadas fora do OpenAPI.