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
Name | Typ | Erforderlich | Beschreibung |
---|---|---|---|
submitToken | String | Erforderlich | Der Einsendecode, welcher im Frontend angefordert wurde. |
validationSignature | String | Erforderlich | Der HMAC SHA256-Hash des Validierungscode. |
formSignature | String | Erforderlich | Der HMAC SHA256-Hash der Formulardaten (serialisiert als JSON-String). |
formData | Objekt | Erforderlich | Ein Objekt mit allen Formularfeldern und dem SHA256-Hash der Daten für jedes Feld. |
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:
Name | Typ | Beschreibung |
---|---|---|
valid | Boolean | Ist true , wenn die Anfrage gültig war und vom Backend verarbeitet werden kann. Ist dies false , ist die Übermittlung nicht akzeptabel. |
verificationSignature | String | Die von mosparo erzeugte Signatur. Diese muss mit der vom Client selbst erstellten Signatur abgeglichen werden, um Manipulationen zu verhindern (siehe Auswerten der Antwort). |
verifiedFields | Objekt | Ein Objekt mit allen überprüften Feldern und mit dem Status für jedes Feld (siehe Werte für verifiedFields ). |
issues | Array | Ein Array mit möglichen Problemen als String. |
Wenn ein Fehler aufgetreten ist, sind nur die folgenden Eigenschaften in der Antwort enthalten:
Name | Typ | Beschreibung |
---|---|---|
error | Boolean | Wenn true , ist ein Fehler aufgetreten. |
errorMessage | String | Die Beschreibung des Fehlers, der aufgetreten ist. |
Die Antwort kann mehr Daten enthalten, falls der API-Debugging-Modus für ein Projekt aktiviert ist.