Zum Hauptinhalt springen

Verification

verify

Methode: POST
Endpunkt: /api/v1/verification/verify
Content-Type: application/json (Payload als JSON-String im Request Body)

Überprüft die Formulardaten und teilt dem Backend der Website mit, ob eine Eingabe korrekt war oder manipuliert wurde.

Authentifizierung

Um den API-Endpunkt zu sichern, ist eine Authentifizierung erforderlich. Dazu muss der Header Authorization mit der Anfrage gesendet werden. In diesem Header muss der öffentliche Schlüssel des Projekts als Benutzername angegeben werden. Für das Passwort muss ein HMAC SHA256 Hash der API-Endpunkt-URL kombiniert mit den Anfragedaten, serialisiert als JSON, angegeben werden. Der private Schlüssel wird als Schlüssel für den HMAC-SHA256-Hash verwendet.

Authorization: [Base64 von <publicKey>:<hmacHash>]

Beispiel

$publicKey = 'XStQNakEiJk1oMIXJ6_Rxmd3j5gNcQae34n1G3aR6FU';
$privateKey = 'stH6Ugo4FcbQLp6_KPlOYltFMHfY59rxCUQRk3_AxYQ';
$apiEndpoint = '/api/v1/verification/verify';
$formData = ['first-name' => '0fde7e04a97f64098b5285c6e33502ddd918a04a7fc8c7012a13caae19b26c3b'];

$hmacHash = hash_hmac('sha256', $apiEndpoint . json_encode($formData), $privateKey);
$authHeader = base64_encode($publicKey . ':' . $hmacHash);
Authorization: WFN0UU5ha0VpSmsxb01JWEo2X1J4bWQzajVnTmNRYWUzNG4xRzNhUjZGVTpRcWZCeHNtT2ZJTXcwLXVWTm5SVmREbE1VWmRMcFRHMXhvMHl5aWZ5THJJOjNiZGQzODVjYWE1M2UzZGE3NmE4ZGNiZmNhYTBkOWY0ZTA0ZDhjMTg5ZmFiMDNiYTQxMzgzZGVlYTIzNmIyZDM=

Anfrage

Beispiel

{
"submitToken":"_wc0MPl5EQuwuJeTMq8uoF7WFpFdoZZf35ctawmasmc",
"validationSignature":"122fe5123d3efb8167000b1adf54864991208f9ab9192b66d178cfc1886ed12d",
"formSignature":"b1e232b17f9cb11ea9402cbdf67325f3ecc494bfa2277e3246f1f3a51696b668",
"formData":{
"email-address":"90adf74020cede3f838394bfc64d2981f7a60f06bd91dd55fcdf299970a3b1b9",
"first-name":"0fde7e04a97f64098b5285c6e33502ddd918a04a7fc8c7012a13caae19b26c3b",
"last-name":"65b63117b1a4dfe468d927e32d8ea302d9d10c04c9b9b7dfac9c7770deacc0cc",
"message":"2c1733ff5e4e9a7f206c4fff391021acc6b1783785dbd70be9fcb8d008a0d9e5",
"website":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
}

Argumente

NameTypErforderlichBeschreibung
submitTokenStringErforderlichDer Einsendecode, welcher im Frontend angefordert wurde.
validationSignatureStringErforderlichDer HMAC SHA256-Hash des Validierungscode.
formSignatureStringErforderlichDer HMAC SHA256-Hash der Formulardaten (serialisiert als JSON-String).
formDataObjektErforderlichEin Objekt mit allen Formularfeldern und dem SHA256-Hash der Daten für jedes Feld.
Information

Bitte stellen Sie sicher, dass Sie den Inhalt so verifizieren, wie der Benutzer ihn im Formular eingegeben hat. Einige Systeme schützen einige Zeichen und ändern so den Inhalt des Feldes. WordPress zum Beispiel schützt in allen Anfrageparametern automatisch die Zeichen ' und " mit einem Backslash, wahrscheinlich um SQL-Injektionen zu verhindern. Die Felder entsprechen damit nicht mehr dem, was der Benutzer in das Formular eingegeben hat. Wenn mosparo ein oder mehrere Felder als ungültig markiert, überprüfen Sie bitte, ob der Inhalt der Felder genau so verifiziert wurde, wie er in mosparo angezeigt wird.

Antwort

Beispiel

{
"valid":true,
"verificationSignature":"994937080e6f4fdfbe0aa8e0581348cbabc1d3b84365e8a8ba0a00fa2716e470",
"verifiedFields":{
"first-name":"valid",
"last-name":"valid",
"email-address":"valid",
"website":"valid",
"message":"valid"
},
"issues":[

]
}

Merkmale

Wenn die Anfrage erfolgreich abgeschlossen wurde, sind die folgenden Eigenschaften in der Antwort enthalten:

NameTypBeschreibung
validBooleanIst true, wenn die Anfrage gültig war und vom Backend verarbeitet werden kann. Ist dies false, ist die Übermittlung nicht akzeptabel.
verificationSignatureStringDie von mosparo erzeugte Signatur. Diese muss mit der vom Client selbst erstellten Signatur abgeglichen werden, um Manipulationen zu verhindern (siehe Auswerten der Antwort).
verifiedFieldsObjektEin Objekt mit allen überprüften Feldern und mit dem Status für jedes Feld (siehe Werte für verifiedFields).
issuesArrayEin Array mit möglichen Problemen als String.

Wenn ein Fehler aufgetreten ist, sind nur die folgenden Eigenschaften in der Antwort enthalten:

NameTypBeschreibung
errorBooleanWenn true, ist ein Fehler aufgetreten.
errorMessageStringDie Beschreibung des Fehlers, der aufgetreten ist.
Information

Die Antwort kann mehr Daten enthalten, falls der API-Debugging-Modus für ein Projekt aktiviert ist.