Prompts prontos
Pedidos para copiar e colar no seu assistente de IA, junto do guia de implementação.
Cada prompt considera que o guia de implementação está no projeto em docs/project-api.md. Troque o que está entre colchetes pelo seu caso.
Os prompts nunca levam o token. O código lê de PROJECT_TOKEN, que você mesmo põe no .env.
Cliente da API
O ponto de partida de qualquer integração.
Leia docs/project-api.md e siga as regras dele.
Crie um cliente da API de revenda da Project em [Node.js/TypeScript | PHP | Python]:
- uma função de requisição única (endereço de PROJECT_API_URL, token de PROJECT_TOKEN,
timeout de 30 s, leitura de { success, message, data, errors }, erro com o status HTTP);
- uma função para cada rota da Referência;
- testes com um cliente HTTP falso, sem chamar a API de verdade.
No fim, me diga como testar a conexão com GET /me.Bot do Discord que entrega key
Leia docs/project-api.md e siga as regras dele.
Crie um bot do Discord em [discord.js | discord.py] com o comando /key, só para quem
tem o cargo [nome do cargo]:
- /key produto:<escolha da lista de GET /products, só os available> dias:<plans do produto>
- gera 1 key com POST /keys (Idempotency-Key criada e salva antes da chamada),
e manda a key por mensagem privada para quem usou o comando;
- em 402, responde que falta saldo; em outros erros, mostra a message da API;
- guarda generation_id, user_id e key_code de cada key num arquivo [SQLite | JSON].Loja que entrega a key depois do pagamento
Leia docs/project-api.md e siga as regras dele.
Na minha loja em [WooCommerce | Next.js | Laravel | outra], quando um pedido for
confirmado como pago:
- crie uma Idempotency-Key, salve no pedido e chame POST /keys com o product_id e os
days ligados ao produto da loja (crie esse mapeamento como configuração);
- salve o key_code no pedido e mostre/envie ao cliente;
- se a chamada falhar por rede, timeout ou 5xx, tente de novo com a MESMA Idempotency-Key;
- se der 402 (sem saldo), marque o pedido como "aguardando key" e me avise.
Nunca gere key duas vezes para o mesmo pedido.Atendimento: consultar key e resetar HWID
Leia docs/project-api.md e siga as regras dele.
Crie uma tela [ou comando de bot] de atendimento que:
- recebe o key_code que o cliente informa e acha o user_id dela no meu banco;
- mostra status, hwid_status e o tempo restante (GET /keys com user_ids[]);
- tem um botão "Resetar HWID" (POST /keys/{user_id}/reset-hwid) que pede confirmação.Receber os webhooks
Leia docs/project-api.md e siga as regras dele.
Crie um endpoint POST /webhooks/project em [Express | Laravel | Flask | outro] que:
- valida X-Project-Signature-256 com PROJECT_WEBHOOK_SECRET sobre o corpo cru,
em tempo constante, e recusa avisos com mais de 5 minutos;
- ignora um id que já processou;
- responde 204 na hora e trata o evento depois: [o que fazer com key.generated,
key.hwid_reset e credits.*];
- tem testes com uma assinatura válida, uma errada e uma antiga.Painel de saldo e extrato
Leia docs/project-api.md e siga as regras dele.
Crie uma página [no meu painel] que mostra o saldo (GET /credits) e o extrato
(GET /credits/transactions) com paginação de 50 em 50, com o tipo de cada
movimento em português. A chamada à API acontece no servidor, nunca no navegador.