Guías de integración
Conectar una donación real al pago central
Recoja campos configurados; Server determina moneda, cargos y contribución confirmada.
Antes de empezar
- Campaña pública real abierta a contribuciones.
- Moneda, límites, campos y totales públicos permitidos de la campaña.
- Prueba autorizada y cliente Web protegido, o integración Organización aprobada aparte.
Leer la causa y los requisitos
Muestre campaña y beneficiario públicos. El importe usa la moneda real de venta; respete campos pertinentes y anonimato.
No invente metas ni totales, no revele donantes privados ni cambie a moneda de visualización. Server valida importe y cargos.
Mantener protección en la ruta Web
POST /api/public/donate pasa por fetchPublicFlow("/donate", ...), que prepara contexto e intento estable. Server rechaza contexto ausente y aplica controles.
Un script o plugin externo no puede sustituirlo con huellas falsas. Use integración protegida aprobada o página real; el helper no es un paquete de navegador publicado.
Abrir el pago del servidor
El ejemplo inactivo no envía nada al mostrar la documentación. Llámelo desde un formulario validado y con prueba autorizada; conserve el intento ante incertidumbre.
Abra authorization_url en checkout.sparkglim.net. Checkout devuelve al visitante y Server registra donaciones. Sin verificación, sondeo, total optimista ni confirmación inventada en el navegador.
'use client';
import { fetchPublicFlow } from '@/lib/server-backend/public-api';
type Input = { campaign_id: string; amount: number; phone_number?: string; email?: string; donor_name?: string; anonymous?: boolean; custom_data?: Record<string, unknown>; client_attempt_id: string; return_path: string };
let requestStarted = false;
export async function initializeApprovedTest(input: Input, approvedTest: boolean) {
if (!approvedTest || requestStarted) return null;
requestStarted = true;
const response = await fetchPublicFlow('/donate', {
method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(input)
});
const result = await response.json();
if (!response.ok || result.success !== true) throw new Error(result.error || 'Checkout unavailable');
if (typeof result.data?.authorization_url !== 'string') throw new Error('No paid checkout URL returned');
const target = new URL(result.data.authorization_url);
if (target.origin !== 'https://checkout.sparkglim.net' || target.username || target.password) throw new Error('Invalid checkout URL');
window.location.assign(target.href);
return target.href;
}Compruebe su integración
- Probar importe, contactos y anonimato con datos autorizados.
- Conservar moneda y totales privados; revisar retorno sin una donación real.