examples/fake-store/. É uma loja funcional com produtos, carrinho, checkout, webhook
e páginas de retorno. Use-a como mapa para a sua própria integração.
A integração de referência é didática. O webhook de exemplo não valida HMAC
(está marcado como
TODO). Em produção, siga sempre o guia de
Segurança e valide a assinatura.Stack
- Backend: Node.js + Express + TypeScript
- Base de dados: SQLite (prepared statements)
- Frontend: HTML + a FaciPay JS SDK
Correr localmente
Anatomia
O fluxo, passo a passo
Renderização do botão FaciPay
checkout.html chama FaciPay(token).generateButton({...}).render('#facipay-checkout-button').createOrder() → backend
O callback faz
POST /api/orders/create-from-cart. O servidor recalcula o total,
cria a ordem na BD e chama FaciPayService.createOrder() → devolve referenceNumber.Popup e callbacks
A SDK abre o popup. Conforme o resultado, dispara
onApprove, onPending ou onCancel,
e a loja redireciona para success / pending-ref / cancel.Backend: criar a ordem
OFaciPayService.createOrder() mostra o fluxo real de token + criação de ordem
(ver Autenticação):
O
additionalInfo é apenas informativo — não é usado para configurar o
webhook nem quaisquer URLs de retorno/cancelamento. O webhook é registado de
forma global pela equipa FaciPay contra as suas credenciais, e a navegação de
retorno/cancelamento é tratada pelos callbacks do SDK
(onApprove/onPending/onCancel).Frontend: SDK real
Ocheckout.html usa funcionalidades além do básico — referências múltiplas, info do
cliente e atualização de quantidade:
Os scripts
facipay-profiles.js e facipay-settings.js do exemplo são andaimes do demo
(troca de credenciais entre perfis) — não fazem parte da SDK pública.Próximo passo: Segurança
Como validar o webhook corretamente (o que o exemplo ainda não faz).