Caputchin
Gehostete Verifizierung

Webhook-Payload-Referenz

Wenn eine Einsendung die Verifizierung besteht, sendet die Weiterleitung einen POST an deine konfigurierte Webhook-URL. Diese Seite ist der genaue Vertrag für diese Anfrage. Für die Setup-Anleitung sieh dir gehostete Verifizierung einrichten an; für das Konzept sieh dir ohne Backend verifizieren an.

Anfragezeile und Header

Die Weiterleitung sendet einen POST mit einem JSON-Body und diesen Headern:

HeaderWert
content-typeapplication/json
acceptapplication/json
user-agentCaputchin-Forwarder/0.1
x-caputchin-test1, nur bei einer Dashboard-Testzustellung vorhanden; fehlt bei echten Einsendungen

Der Aufruf wird mit deaktivierten Redirects und einem Timeout von ein paar Sekunden gesendet. Die Anfrage ist nicht signiert; die Geheimhaltung der Webhook-URL ist es, was sie authentifiziert.

Body

Der Body ist ein JSON-Objekt mit zwei Schlüsseln auf oberster Ebene, caputchin (Verifizierungs-Metadaten, die Caputchin hinzufügt) und form (deine eingesendeten Felder):

{
  "caputchin": {
    "site_key": "cpt_pub_...",
    "session_id": "...",
    "game_id": "caputchin/games/leaf-memory",
    "score": 847,
    "duration_ms": 4200,
    "verified_at": 1748640000000
  },
  "form": {
    "email": "visitor@example.com",
    "message": "Hello!"
  }
}

Das caputchin-Objekt

FeldTypBedeutung
site_keystringDer öffentliche cpt_pub_...-Key, von dem die Einsendung kam.
session_idstringEine opake Verifizierungs-Session-id, nützlich zur Korrelation oder Deduplizierung. Bei einer Testzustellung ist sie mit test_ präfixiert.
game_idstring oder nullDas Spiel, das der Besucher gespielt hat. Null, wenn die Verifizierung ohne Spiel lief.
scorenumber oder nullDie Spiel-Punktzahl. Vom Client behauptete Metadaten für Analysen, nie ein Vertrauenssignal. Null, wenn nicht anwendbar.
duration_msnumber oder nullWie lange der Besucher mit dem Spiel verbracht hat, in Millisekunden. Vom Client behauptet, kein Vertrauenssignal. Null, wenn nicht anwendbar (zum Beispiel eine Verifizierung ohne Spiel).
verified_atnumberWann Caputchin das Token verifizierte, als Unix-Epoche in Millisekunden.
testboolean (optional)Nur bei einer Dashboard-Testzustellung vorhanden und true. Fehlt bei echten Einsendungen.

game_id, score und duration_ms sind bei einer echten Einsendung jeweils nullable, also guard auf null, bevor du sie liest. Keines der caputchin-Felder ist eine Vertrauensentscheidung: das Vertrauen ist, dass die Anfrage überhaupt ankam, weil eine Einsendung, die die Verifizierung nicht besteht, nie weitergeleitet wird.

Das form-Objekt

form ist ein flaches Objekt deiner eingesendeten Felder als String-Schlüssel und String-Werte, genau wie gepostet, mit einer Änderung: das caputchin-token-Feld wird vor der Zustellung entfernt, sodass es hier nie erscheint. Die Weiterleitung akzeptiert nur Textfelder; eine Einsendung, die einen Datei-Upload trägt, wird vor jeder Zustellung abgelehnt.

Was dein Handler zurückgeben sollte

Gib einen beliebigen 2xx-Status zurück, um den Empfang zu bestätigen. Die Weiterleitung behandelt eine Nicht-2xx-Antwort, ein Timeout oder einen Verbindungsfehler als fehlgeschlagene Zustellung, und eine fehlgeschlagene Zustellung wird nicht wiederholt. Verfolge die Zustellungsgesundheit auf der Statistik-Seite.

Siehe auch

Auf dieser Seite