Aller à la documentation
SparkGlimSparkGlim Développeurs
Rechercher dans toute la documentation

Essayez un sujet dans votre langue ou un chemin API exact.

    Référence API

    Démarrer un vote public

    Valide campagne publique, candidat admissible, quantité et protection navigateur avant le paiement centralisé.

    POSThttps://api.sparkglim.net/api/public/vote

    Modèle d’accès

    Modèle d’accès
    Accès public avec validation
    Disponibilité documentée
    Implémenté dans le code

    La disponibilité est vérifiée dans le code, pas garantie en production.

    Ouvrez l’URL de paiement retournée. SparkGlim Server contrôle prix, moyens, vérification et exécution ; le retour navigateur est uniquement une navigation.

    Requête

    NomTypeValidation
    campaign_idObligatoire

    Campagne existante dans le compte et dans tout périmètre de clé de campagne plus limité.

    stringValidation : UUID.
    participant_idObligatoire

    Candidat choisi dans cette campagne ; approbation et règles sont vérifiées par le serveur.

    stringValidation : UUID.
    vote_countObligatoire

    Nombre de votes pour le candidat ; le serveur détermine le prix valide et enregistre les votes terminés.

    integerValidation : 1–100.
    phone_numberObligatoire

    Téléphone du participant ; les moyens de paiement et règles peuvent exiger un numéro international valide.

    stringValidation : Valeur non vide.
    emailFacultatif

    Email de contact utilisé par le parcours configuré ; il ne donne jamais accès à lui seul.

    stringValidation : Adresse e-mail.
    payment_channelFacultatif

    Préférence facultative ; seuls les moyens activés pour le pays vendeur, la devise et le marchand sont utilisables.

    enumValidation : Méthode configurée uniquement.
    network_codeFacultatif

    Réseau mobile configuré lorsque le moyen de paiement choisi l’exige.

    stringValidation : Réseau configuré.
    is_appFacultatif

    Contexte existant pour choisir configuration Web ou App ; aucune permission supplémentaire.

    booleanValidation : Contexte du client.
    web_abuse_contextObligatoire

    Données existantes de protection navigateur requises avant paiement public ; elles ne remplacent pas l’autorisation serveur.

    objectValidation : Objet strict ; JSON de device_details <=12000 caractères.
    web_abuse_context.device_idObligatoire

    Signal existant de protection navigateur accepté par le schéma actuel de paiement public.

    stringValidation : 12–160.
    web_abuse_context.device_fingerprintObligatoire

    Signal existant de protection navigateur accepté par le schéma actuel de paiement public.

    stringValidation : 12–160.
    web_abuse_context.browser_signatureFacultatif

    Signal existant de protection navigateur accepté par le schéma actuel de paiement public.

    string|nullValidation : 12–160.
    web_abuse_context.hardware_signatureFacultatif

    Signal existant de protection navigateur accepté par le schéma actuel de paiement public.

    string|nullValidation : 12–160.
    web_abuse_context.device_detailsFacultatif

    Signal existant de protection navigateur accepté par le schéma actuel de paiement public.

    objectValidation : Objet JSON.
    web_abuse_context.client_pattern_detectedFacultatif

    Signal existant de protection navigateur accepté par le schéma actuel de paiement public.

    booleanValidation : Protection d’appareil existante.
    client_attempt_idFacultatif

    Identifiant stable d’opération utilisé pour retrouver une tentative et rejeter les reprises incompatibles.

    stringValidation : Identité d’opération normalisée et stable.
    return_pathFacultatif

    Destination relative de retour sur le site actuel vérifié après paiement centralisé.

    stringValidation : Chemin relatif de même origine ; sans // ni barre oblique inverse.

    Requête

    Les exemples décrivent le contrat et ne sont pas exécutés. Utilisez des données de test autorisées ; ne saisissez jamais de secret réel ici.

    POST /api/public/vote
    http
    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"
    }

    Réponse

    Réponse de succès · HTTP 200
    json
    {
      "success": true,
      "data": {
        "id": "11111111-1111-4111-8111-111111111111",
        "status": "pending"
      }
    }
    Réponse d’erreur · HTTP 400
    json
    {
      "success": false,
      "error": "<ERROR_MESSAGE>"
    }

    Validation, permissions, données indisponibles et pannes utilisent le statut HTTP et l’erreur du gestionnaire.

    Limites et tentatives

    Limite serveur par défaut : 100 requêtes par IP sur 60 secondes. Des contrôles spécifiques s’appliquent.

    Compatibilité du code

    Les opérations autorisées nécessitent des tests propres au compte.

    • server/src/api/router.ts
    • server/src/api/routes/public.ts