Ir para a documentação
SparkGlimSparkGlim Programadores
Pesquisar em toda a documentação

Experimente um tema na sua língua ou um caminho API exato.

    Guias de integração

    Enviar um voto real para o pagamento central

    Elegibilidade, quantidades e registos permanecem sob a autoridade do SparkGlim Server.

    Antes de começar

    • Campanha pública, categoria ativa e nomeado com status e application_status aprovados.
    • Datas, quantidades, preços, moeda e visibilidade da configuração real.
    • Cliente Web protegido existente e autorização de testes controlados.
    01

    Respeitar as regras do programa

    Use campaign_id e participant_id realmente selecionados, vote_count inteiro permitido e contactos exigidos. A validação local não concede acesso.

    Respeite datas, atividade da categoria e aprovação. Nunca apresente contagens ocultas.

    02

    Manter o limite protegido

    O cliente chama fetchPublicFlow("/vote", ...) para POST /api/public/vote. O Storm prepara o contexto do navegador exigido pelo Server.

    Este import pertence ao repositório, não a um SDK universal. Um site externo sem proteção aprovada deve usar a página real ou uma integração Organização aprovada, sem identidades de dispositivo falsas.

    03

    Transferir sem registar votos no navegador

    A função inativa recebe um pedido imutável e o mesmo client_attempt_id. Apresentar o código não envia votos nem concede autorização de teste.

    Abra o URL central devolvido. Server confirma pagamento e votos; consulta, regresso ou sessão inicializada não incrementa contagens. Não acrescente verificação nem consultas periódicas do navegador.

    Pedido ilustrativo com valores de exemplo
    typescript
    'use client';
    import { fetchPublicFlow } from '@/lib/server-backend/public-api';
    type Input = { campaign_id: string; participant_id: string; vote_count: number; phone_number: string; email?: string; 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('/vote', {
          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;
    }

    Verifique a sua integração

    • Verificar elegibilidade, datas e quantidades com registos controlados.
    • Manter contagens privadas e a tentativa incerta sem outro pagamento nem voto anunciado.