Files
pagodera/lib/payment-helper.ts
Evandro Fonseca Junior 2697e2d1f5 feat: enhance webhook for payment confirmation and add frontend detection
Improve webhook handling in AbacatePay route to accurately detect paid events, support anonymous donations, and log structured data for future database and email integrations. Add frontend logic in DonationCard to check payment confirmation via localStorage for real-time UI updates without API polling.
2025-10-26 21:41:05 -03:00

43 lines
1.3 KiB
TypeScript

// Helper para gerenciar confirmações de pagamento via localStorage
// Este arquivo será usado pelo webhook para notificar o frontend
export function confirmPayment(pixId: string) {
if (typeof window === "undefined") return;
try {
// Obter array de pixIds confirmados
const confirmedStorage = localStorage.getItem("confirmedPixIds");
let confirmed: string[] = confirmedStorage
? JSON.parse(confirmedStorage)
: [];
// Adicionar novo pixId se ainda não estiver na lista
if (!confirmed.includes(pixId)) {
confirmed.push(pixId);
localStorage.setItem("confirmedPixIds", JSON.stringify(confirmed));
console.log("✅ Pagamento confirmado via helper:", pixId);
}
} catch (error) {
console.error("Erro ao confirmar pagamento:", error);
}
}
export function isPaymentConfirmed(pixId: string): boolean {
if (typeof window === "undefined") return false;
try {
const confirmedStorage = localStorage.getItem("confirmedPixIds");
const confirmed: string[] = confirmedStorage
? JSON.parse(confirmedStorage)
: [];
return confirmed.includes(pixId);
} catch {
return false;
}
}
// Expor função global para o webhook (se necessário)
if (typeof window !== "undefined") {
(window as any).confirmPaymentPix = confirmPayment;
}