Acapadev

AcapaPay · Laravel SDK

Boas Práticas de Segurança

Idempotência nos Listeners

O servidor AcapaPay pode, em situações excecionais (timeouts, retentativas), enviar o mesmo Webhook mais do que uma vez. Os seus Listeners devem ser idempotentes — produzir o mesmo resultado independentemente de quantas vezes forem chamados.

// Verifique sempre antes de processar
if (Subscription::where('acapapay_id', $event->subscriptionId)->exists()) {
    Log::info('Evento duplicado ignorado: ' . $event->subscriptionId);
    return;
}

Nunca Confiar Apenas no Redirect de Sucesso

O utilizador pode fechar o browser antes do redirecionamento. Nunca ative subscrições baseando-se apenas na chegada à página de sucesso. A confirmação canónica e fiável é sempre o Webhook.

Fluxo Correto

A página de sucesso mostra uma mensagem de "A processar..." e o seu sistema usa polling ou espera pelo Webhook para ativar o serviço. Só então apresenta a confirmação definitiva.

Proteger o Client Secret

  • Nunca exponha o ACAPAPAY_CLIENT_SECRET no frontend (JavaScript, HTML).
  • Use variáveis de ambiente e nunca faça hardcode no código-fonte.
  • Rode os secrets periodicamente no painel de Developer do SSO.

SSL em Produção

O SDK verifica certificados SSL por padrão (ACAPAPAY_VERIFY_SSL=true). Nunca defina como false em produção — isso exporia a comunicação M2M a ataques man-in-the-middle.

Enter para selecionar ESC para sair