Referência API
Iniciar voto público
Valida campanha pública, nomeado elegível, quantidade e proteção antes do pagamento central.
https://api.sparkglim.net/api/public/voteModelo de acesso
- Modelo de acesso
- Acesso público com validação
- Disponibilidade documentada
- Implementado no código
Disponibilidade verificada no código, sem garantia de produção.
Abra o URL de pagamento devolvido. O SparkGlim Server controla preços, métodos, verificação e entrega; o regresso do navegador apenas navega.
Pedido
| Nome | Tipo | Validação |
|---|---|---|
campaign_idObrigatórioCampanha existente na conta e no âmbito mais limitado de qualquer credencial de campanha. | string | Validação: UUID. |
participant_idObrigatórioNomeado escolhido nesta campanha; o servidor verifica aprovação e regras. | string | Validação: UUID. |
vote_countObrigatórioNúmero de votos para o nomeado; o servidor determina o preço válido e regista votos concluídos. | integer | Validação: 1–100. |
phone_numberObrigatórioTelefone do participante; métodos e regras podem exigir número internacional válido. | string | Validação: Valor não vazio. |
emailOpcionalEmail de contacto usado pelo fluxo configurado; por si só não concede acesso. | string | Validação: Endereço de e-mail. |
payment_channelOpcionalPreferência opcional; só se usam métodos ativos para país de venda, moeda e comerciante reais. | enum | Validação: Apenas o método configurado. |
network_codeOpcionalRede móvel configurada quando o método de pagamento a exige. | string | Validação: Rede configurada. |
is_appOpcionalContexto existente para escolher configuração Web ou App; sem permissões extra. | boolean | Validação: Contexto do cliente. |
web_abuse_contextObrigatórioDados existentes de proteção do navegador exigidos antes do pagamento público; não substituem autorização do servidor. | object | Validação: Objeto estrito; JSON de device_details <=12000 caracteres. |
web_abuse_context.device_idObrigatórioSinal existente de proteção do navegador aceite pelo esquema atual. | string | Validação: 12–160. |
web_abuse_context.device_fingerprintObrigatórioSinal existente de proteção do navegador aceite pelo esquema atual. | string | Validação: 12–160. |
web_abuse_context.browser_signatureOpcionalSinal existente de proteção do navegador aceite pelo esquema atual. | string|null | Validação: 12–160. |
web_abuse_context.hardware_signatureOpcionalSinal existente de proteção do navegador aceite pelo esquema atual. | string|null | Validação: 12–160. |
web_abuse_context.device_detailsOpcionalSinal existente de proteção do navegador aceite pelo esquema atual. | object | Validação: Objeto JSON. |
web_abuse_context.client_pattern_detectedOpcionalSinal existente de proteção do navegador aceite pelo esquema atual. | boolean | Validação: Proteção de dispositivo existente. |
client_attempt_idOpcionalIdentificador estável usado para recuperar uma tentativa e rejeitar repetições incompatíveis. | string | Validação: Identidade de operação normalizada e estável. |
return_pathOpcionalDestino relativo de regresso ao site atual verificado após pagamento central. | string | Validação: Caminho relativo da mesma origem; sem // nem barra invertida. |
Pedido
Os exemplos descrevem o contrato e não são executados. Use registos de teste autorizados; nunca cole segredos reais aqui.
POST /api/public/vote HTTP/1.1
Host: api.sparkglim.net
Content-Type: application/json
{
"campaign_id": "11111111-1111-4111-8111-111111111111",
"participant_id": "33333333-3333-4333-8333-333333333333",
"vote_count": 1,
"phone_number": "+233200000000",
"web_abuse_context": {
"device_id": "<EXISTING_DEVICE_ID>",
"device_fingerprint": "<EXISTING_DEVICE_FINGERPRINT>"
},
"client_attempt_id": "example_stable_attempt_0001"
}Resposta
{
"success": true,
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"status": "pending"
}
}{
"success": false,
"error": "<ERROR_MESSAGE>"
}Validação, permissões, registos indisponíveis e falhas usam estado HTTP e erro do controlador.
Limites e novas tentativas
Limite padrão: 100 pedidos por IP em 60 segundos. Aplicam-se também controlos específicos.
Compatibilidade do código
As operações autorizadas exigem testes específicos da conta.
server/src/api/router.tsserver/src/api/routes/public.ts