Page tree
Skip to end of metadata
Go to start of metadata

Beschreibung

Diese Funktion bietet die Möglichkeit einen Double-Opt-In nachträglich zu setzen. Es kann somit für einfache Opt-Ins aus der Vergangenheit ein Mechanismus implementiert werden, welcher dafür sorgt, dass alle benötigten Daten gesammelt werden. Diese können dann bei dem Abonnenten hinterlegt werden. Die Funktion erlaubt die Änderung/Erstellung von bis zu 100 DOI-Änderungen/Erstellungen pro Aufruf. Dazu beinhaltet das Request-Objekt ein Array namens "doiRequestItems". Darin können bis zu 100 Request-Items pro Aufruf untergebracht werden. Im Ergebnis-Objekt werden so viele Response-Items zurückgegeben, wie Request-Items angegeben wurden.

Damit DOI-Confirm-E-Mails generiert werden können, muss auf JEDEM Mandanten, auf dem DOI's von Abonnenten bearbeiten werden sollen, ein Webinterface-Template vom Typ "Anmeldung (Double-Opt-In)" bereitgestellt werden. Dazu kann jedes, bereits vorhandene Template dieses Typs verwenden werden, in dem sich auch ein <!--CONFIRM-EMAIL-->...<!--/CONFIRM-EMAIL--> Block befindet, oder aber - und das ist ist eher empfehlenswert, es wird ein neues Template vom Typ "Anmeldung (Double-Opt-In)" angelegt, welches dann nichts anders, als einen <!--CONFIRM-EMAIL-->...<!--/CONFIRM-EMAIL--> Block beinhaltet und DEAKTIVIEREN dieses Template zusätzlich, um eine Ausführung des Templates über einen URL-Aufruf zu verhindern! Die ID des jeweiligen WebInterface-Templates muss dann im Parameter "webTemplateId" jedes Request-Items angegeben werden.

Hinweis: Sollte das System überlastet sein, wird ein Fehler mit dem Text "Too much unfinished tasks! Please try again later." geworfen und die Abarbeitung verhindert! Dies sollte bei synchronen SOAP-Aufrufen (Standard) nicht passieren. Sollte aber eine parallele Implementierung verwendet werden und dieser Fehler auftreten, sollten die Aufrufe gebündelt werden.

Verfügbar ab Backclick-Version: 5.8.0

Um nachträglich einen Double-Opt-In zu erzeugen müssen folgende Angaben gemacht werden:

  • ID des Mandanten
  • API-Key (optionale Authentifizierung, wenn nicht angegeben, dann wird die Authentifizierung über die IP-Adressen vorgenommen)
  • DOI-Request-Items, Die Angabe erfolgt über ein Array
    • E-Mail-Adresse des Abonnenten der editiert werden soll
    • ID des WebInterface-Templates, welches zum Versand der Bestätigungsmails verwendet werden soll
    • IP des Abonnenten, die zum Nachweis der Zustimmung dient
    • Information, ob der DOI für alle Listen gilt
    • User-Agent des Abonnenten (Standard: clientUserAgent = "") optionale Angabe
    • Referrer des Abonnenten (Standard: clientReferer = "") optionale Angabe
    • Zusätzliche Quelle, z.B. für die Zuordnung einer bestimmten Werbeaktion (Standard: permissionSource = "") optionale Angabe
    • Verteilerlisten, für die der Aufruf gilt, falls er nicht für alle Listen gilt

Das Antwortobjekt ist ein Array, welches genau so lang ist, wie die Anzahl der Abonnenten im Aufruf und enthält entsprechende Informationen über den Ausführungsstatus. Hier sind die möglichen Antwort-Codes:

AntwortcodeBedeutung
0

Vorgang wurde erfolgreich abgeschlossen. Änderungen wurden protokolliert und eine DOI-Confirm-E-Mail auf Basis des angegebenen Webinterface-Templates wurde generiert.

Hinweis

Die Generierung der E-Mail alleine ist KEINE Zustellgarantie. Falls das Postfach des Empfängers z.B. nicht mehr existiert, der annehmende Server nicht erreichbar ist, oder irgendwelche anderen Fehler auf der Gegenseite passieren, kann die E-Mail evtl. nicht zugestellt werden!

1

Für alle angegebenen Verteilerlisten wurde bereits ein DOI protokolliert. Es wurden keine Änderungen protokolliert.

2

Angegebene E-Mail-Adresse wurde nicht gefunden. Es wurden keine Änderungen protokolliert.

3

Angegebene E-Mail-Adresse ist ein inaktiver Abonnent (selbst ausgelöstes, aber noch unbestätigtes DOI über ein WebInterface-DOI-Anmeldetemplate). Es wurden keine Änderungen protokolliert.

4

Es wurden keine Verteilerlisten-ID's angegeben, oder von den angegebenen Verteilerlisten-ID's konnte keine dem angegebenen Mandanten zugeordnet werden. Es wurden keine Änderungen protokolliert.

5

Es wurden keine Request-Items definiert. Das doiRequestItems-Array war leer. Es wurden keine Änderungen protokolliert.

6

Das angegebene Webinterface-DOI-Anmeldetemplate wurde nicht gefunden, ist kein DOI-Template, oder es enthält keinen <!--CONFIRM-EMAIL--> Block. Es wurden keine Änderungen protokolliert.

7

Bei der Erstellung der DOI-Confirm-E-Mail ist ein Fehler aufgetreten. Alle Änderungen wurden jedoch protokolliert.

-1

Ein unbehandelter Fehler ist aufgetreten. Wenn der Antwortcode auf alle Ihre Requests konstant -1 sein sollte, kontaktieren Sie bitte den Backclick-Support, um in den Server-Logfiles nach entsprechenden Hinweisen für den Grund des Fehlers suchen zu lassen!

Hinweis

Aufgrund der Wichtigkeit der Nachweisbarkeit von DOI's, prüfen Sie bitte AUF JEDEN FALL den Rückgabewert dieser Funktion und reagieren Sie im Fehlerfall entsprechend!

Folgende Fehlermeldungen können bei fehlerhaften Requests auftreten:

  • Validation error => Es liegt ein Fehler im Request vor, dieser genügt nicht den Anforderungen. Details sind in der Fehlermeldung zu finden.
  • Too much unfinished tasks! Please try again later. => Zu viele parallele Aufrufe der Funktion. Bitte später noch einmal probieren und ggf. die Aufrufe bündeln.

Beispiel

Beispiel für das Nachträgliche Hinzufügen eines Double-Opt-Ins
$client = new SoapClient($wsdlUrl);
$request = new StdClass();
$request->mandatorId = 1;
$request->doiRequestItems = array();
$requestItem = new StdClass();
$requestItem->subscriberEmail = "user@example.com";
$requestItem->webTemplateId = 2;
$requestItem->clientIp = "127.0.0.1";
$requestItem->validForAllLists = true;
array_push($request->doiRequestItems, $requestItem); 
try {
    $response = $client->modifyDoubleOptIn($request);
    var_dump($response);
} catch (Exception $e) {
    echo "\n" . $e->getMessage() . "\n";
    foreach ($e->detail->ValidationError as $ve) {
       echo $ve . "\n"; 
    } 
}
Beispielausgabe
object(stdClass)#4 (1) {
  ["doiResponseItems"]=>
  object(stdClass)#5 (2) {
    ["subscriberEmail"]=>
    string(21) "user@example.com"
    ["result"]=>
    int(0)
  }
}

Quellcode

Um ein funktionsfähiges Beispiel testen können, steht hier der Quellcode zum Download zur Verfügung.

Beispiel für das Hinzufügen eines DOI's