AI Protect ist eine KI-basierte Betrugserkennungslösung mit Profiling und maschinellen Lernmodellen, die dabei hilft, Rückbuchungsraten und das Betrugsrisiko zu senken. Das System arbeitet daran, den Verkehr auf der Website zu profilieren, betrügerisches Verhalten zu erkennen und Einblicke in die Geschäftsintelligenz zu liefern. Es verarbeitet die bereitgestellten Daten und muss im richtigen Moment abgefragt werden, um das Betrugsrisiko einzuschätzen oder im Moment der Abfrage Einblicke zu liefern.
|
Die Lösung funktioniert in zwei Schritten

Diese Betrugsprüfung/Transaktionsüberprüfung kann für verschiedene Zahlungsmethoden verwendet werden. Wir haben uns auf Kreditkarten-, SEPA- und Paypal-Transaktionen konzentriert, aber sie kann erweitert werden.
Das empfohlene Ergebnis der Betrugsprüfung von AI Protect lautet:
hat AI Protect auf unseren gehosteten Zahlungsseiten paymentpage.aspx, payssl.aspx und paysdd.aspx implementiert.
Das Profiler-Modul ist als Option zur Verwendung einer Vorautorisierungsfunktion über unsere gehostete Zahlungsseite (payssl.aspx) oder Zahlungsformulare paymentpage.aspx und paysdd.aspx implementiert.
Der praktische Weg besteht darin, dass wir vor der Autorisierung die vom Händler in der Anfrage gesendeten Daten verwenden und eine Betrugsprüfung durchführen können, bevor die Autorisierung erfolgt.
Die verwendbare Logik ist:
Der Profiler wurde implementiert, um Betrugsprüfungen per Server-zu-Server für die Zahlungsmethoden Kreditkarte, PayPal und EDD durchführen zu können.
Der Händler muss allerdings eine Profiling-Lösung auf seiner Webseite installieren.
Folgende drei Schritte sind zum Profiling nötig
Diese JavaScript-Datei enthält eine Profilierungslogik. Die statische JavaScript-Datei sollte auf der Webseite mit einer URL in der Form https://domain_name/s/merchant_id/script_name.js eingebunden werden.
Hinweis*: Das Profiling-Skript wird während des Onboardings von Nethone bereitgestellt..

Der folgende Codeausschnitt muss auf der Seite eingefügt werden, auf der der Händler das Profiling durchführen möchte. Normalerweise ist dies die Zahlungsseite.
<!-- javascript inserted at the bottom of body; merchant_id may be hardcoded or inserted by backend, crossorigin="use-credentials" property is mandatory-->
<script type="text/javascript" id="SCRIPT_TAG_ID" crossorigin="use-credentials" src="https://provided_name.nethone.io/s/${merchant_id}/dNfsXe.js" async></script> |
Die Skriptinitialisierungsfunktion (dftp.init) muss ausgeführt werden, um die Browserdaten des Benutzers zu erfassen. Sie sollte aufgerufen werden, wenn das Formular geladen wurde. Die Funktion erfordert ein Argument options, ein JavaScript-Objekt mit mehreren Eigenschaften.
Mögliche Eigenschaften sind:
| String (erforderlich) – eindeutige ID, die beim Anzeigen des Formulars generiert wird. |
| Liste (bedingt erforderlich) – eine Liste von Zeichenfolgen mit IDs sensibler Felder. |
| Liste (bedingt erforderlich) – eine Liste von Zeichenfolgen mit Whitelist-Feld-IDs. |
| List (optional) – eine Liste von Zeichenfolgen, die IDs geheimer Felder enthalten. |
attemptReference wird verwendet, um die durchgeführte Abfrage mit den Daten abzugleichen, die das Profiling-Skript über einen Benutzer erfasst hat. Es muss sich um einen eindeutigen Wert handeln, der bei jeder Formularansicht generiert wird. Sie sollten attemptReference niemals wiederverwenden. Bei Single Page Applications dürfen Sie die Profiling-Lösung nicht neu initialisieren.
Die Handhabung der vom Profiling-Skript erfassten Verhaltensdaten wird durch die Parameter sensitiveFields, allowedFields und secretFields gesteuert. Die Übergabe von sensitiveFields und allowedFields steuert, wie Verhaltensdaten aus Feldern behandelt werden, die nicht anderweitig angegeben sind. Die möglichen Handhabungsmodi für nicht angegebene Felder sind Standard und Alternative.
Dies ist der empfohlene Modus. In diesem Modus werden für Felder, die nicht anderweitig angegeben sind, vollständige Verhaltensdaten erfasst. Die Übergabe von nur sensititiveFields aktiviert diese Modus, secretFields können zusätzlich übergeben werden.
Beispielnutzung:
dftp.init({
attemptReference: '8b7115e0-49d2-438b-b88f-b265e44b156f',
sensitiveFields: ['number', 'cvc']
});
// or
dftp.init({
attemptReference: '8b7115e0-49d2-438b-b88f-b265e44b156f',
sensitiveFields: ['number', 'cvc'],
secretFields: ['password']
}); |
Vom Profiling-Skript erfasste Verhaltensdaten werden nach Formularfeld-IDs gruppiert. Es wird dringend empfohlen, dass alle Formularfelder HTML-IDs haben, die im Laufe der Zeit stabil bleiben.
Wenn eines der folgende Dinge zutrifft:
können ALLE sensiblen/geheimen Schlüsselereignisse (zum Beispiel mit enthaltenen Kartendaten) an den Profiler gesendet werden. |
Um sicherzustellen, dass alle erforderlichen Profiling-Daten erfasst wurden, wird empfohlen, die Funktion dftp.profileCompleted zu verwenden. Sie gibt ein Promise-Objekt zurück, das aufgelöst wird, wenn wir die Verarbeitung abgeschlossen haben und eine Abfrage sicher durchgeführt werden kann.
Sample usage with modern JavaScript:
try {
await dftp.profileCompleted();
} catch (err) {
console.error("Profiling failed with err: " + err);
}
doWorkAfterProfiling();
Sample usage with Promises:
dftp.profileCompleted().catch(err => console.error("Profiling failed with err: " + err)).finally(doWorkAfterProfiling);
doWorkAfterProfiling can be a function used to submit form data and perform the inquiry |
Das Profiling-Skript muss nur einmal pro Seitenlebenszyklus geladen und initialisiert werden. Sie können das Vorhandensein des Objekts dftp prüfen, um ein erneutes Laden des Skripts zu vermeiden. Wenn der Benutzer wiederholt Transaktionen durchführt, ohne die Seite neu zu laden, sollten Sie bei einer Anfrage weiterhin dieselbe attemptReference verwenden.
<html>
<head>
</head>
<body>
<!-- payment form -->
<form id="payment-form">
<label>
Name:<br>
<input type="text" name="name" id="name" class="form-element">
</label>
<br>
<label>
Credit card number:<br>
<input type="text" name="ccn" id="ccn" class="form-element">
</label>
<br>
<label>
Expiration date:<br>
<input type="text" name="expiration" id="expiration" class="form-element">
</label>
<br>
<label>
CVV:<br>
<input type="text" name="cvv" id="cvv" class="form-element">
</label>
</form>
<!-- payment form end-->
<!-- button which is used for sending data, calls dftp.profileCompleted inside sendForm wrapper-->
<button id="send" onclick="sendForm()">Pay</button>
<script>
function validateFormAndSend(){
// isValid is the merchants function used for card data validation
if (isValid()) {
// merchant function used for sending data to server
sentPaymentData();
} else {
// merchant function used for displaying card data errors on the form
displayValidationErrors();
}
}
// function for handling case when script from profiler URL cannot be loaded and dftp object does not exist
function sendForm() {
if (window.dftp){
dftp.profileCompleted().catch(err => console.error("Profiling failed with err: " + err)).finally(validateFormAndSend);
}
else {
validateFormAndSend();
}
}
</script>
<!-- javascript inserted at the bottom of body; merchant_id may be hardcoded or inserted by backend, crossorigin="use-credentials" property is mandatory-->
<script type="text/javascript" id="SCRIPT_TAG_ID" crossorigin="use-credentials" src="https://provided_name.nethone.io/s/${merchant_id}/dNfsXe.js" async></script>
<!-- javascript initializing profiling -->
<script>
var scriptID = "SCRIPT_TAG_ID"; // ID of <script> tag where our script is being loaded
var options = {
attemptReference: "${attempt_reference}", // inserted by the backend
sensitiveFields: ["ccn", "cvv"]; // list of sensitive fields
};
if (window.dftp) {
dftp.init(options);
} else {
var el = document.getElementById(scriptID);
el.addEventListener("load", function () {
dftp.init(options);
});
}
</script>
</body>
</html> |
Das hängt vollständig von der verwendeten Zahlungsart ab. Derzeit ist dies für folgende Zahlungsarten verfügbar:
Um eine AI Protect-Prüfung über eine Server-zu-Server-Verbindung durchzuführen, beachten Sie bitte die jeweiligen Zahlungsmethoden Zahlungen per Kreditkarte, Zahlungen per Lastschrift, PayPal V2
Der Parameter attempt_reference muss zusätzlich zu den jeweiligen Parametern der Zahlungsart angegeben werden.
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| attempt_reference | String maxlen 128 Zeichen | R | Eindeutige ID, die beim Aufruf des Profiling-Skripts generiert wird |