Referência API
Iniciar donativo público
Inicia donativo após validar montante, regras e proteção; não é contribuição concluída.
https://api.sparkglim.net/api/public/donateModelo 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. |
amountObrigatórioMontante pedido na moeda de campanha ou conta; o servidor valida autoridade financeira e condições finais. | number | Validação: 1–1000000; incrementos de 0.01 na moeda da campanha. |
donor_country_codeOpcionalPaís do doador, separado do país de venda e moeda da campanha. | string | Validação: Código ISO2 em maiúsculas. |
emailOpcionalEmail de contacto usado pelo fluxo configurado; por si só não concede acesso. | string | Validação: Endereço de e-mail. |
phone_numberOpcionalTelefone do participante; métodos e regras podem exigir número internacional válido. | string | Validação: Telefone válido quando o canal o exige. |
donor_nameOpcionalNome apresentado do membro ou contribuinte; não muda propriedade da conta. | string | Validação: Sem espaços nas extremidades. |
anonymousOpcionalPede contribuição anónima existente; não envie campos contraditórios. | boolean | Validação: Não deve contradizer is_anonymous. |
is_anonymousOpcionalPede contribuição anónima existente; não envie campos contraditórios. | boolean | Validação: Não deve contradizer anonymous. |
custom_dataOpcionalRespostas aos campos reais da campanha, valores exigidos e opções suportadas. | object | Validação: Campos personalizados configurados. |
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/donate HTTP/1.1
Host: api.sparkglim.net
Content-Type: application/json
{
"campaign_id": "11111111-1111-4111-8111-111111111111",
"amount": 10,
"anonymous": true,
"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