<?php
  $wsdlUrl = ""; //Die URL Ihrer Schnittstelle
  // SoapClient initialisieren
  $client = new SoapClient($wsdlUrl);
  
  // Request-Objekt erstellen
  $request = new StdClass();

  // Mandanten-Id setzen (Pflichtfeld).
  $request->mandatorId = 1;
  $request->doiRequestItems = array();

  // Request-Item(s) definieren (bis zu 100 sind möglich). Die Reihenfolge der Initialisierung der Felder des Request-Items ist egal!
  $requestItem = new StdClass();
  
  // Pflichtangaben des Request-Items setzen
  $requestItem->subscriberEmail = "c.jaeger@backclick.de";
  $requestItem->webTemplateId = 2;
  $requestItem->clientIp = "127.0.0.1";
  $requestItem->validForAllLists = true; //(wenn false, dann MUSS $requestItem->validForLists gesetzt werden!)
  
  //Optionale Angaben des Request-Items setzen (optional = können auch komplett weggelassen werden!)
  //$requestItem->clientUserAgent = "User-Agent";
  //$requestItem->clientReferer = "Referer";
  //$requestItem->permissionSource = "Quelle";

  //Wird nur beachtet, wenn $requestItem->validForAllLists = false ist!
  //$requestItem->validForLists = array(1, 2, 3);

  // Request-Item dem doiRequestItems-Array hinzufügen
  array_push($request->doiRequestItems, $requestItem); 
  
  /*
   * -----------------
   * OPTIONALE ANGABEN
   * -----------------   
   */
  
  /*
   * API-Key.
   * Anstatt den Zugriff auf die Backclick-Schnittstelle über freigegebene IP-Adressen zu regeln,
   * kann die Zugriffsberechtigung auch über einen API-Key geregelt werden.
   * Ist im System ein API-Key definiert, MUSS dieser API-Key (siehe Menüpunkt: System-Administration->Grundeinstellungen
   * ->Einstellungen für das WebInterface) angegeben werden, da die Liste der freigegebenen IP-Adressen dann NICHT GILT!
   */
  $request->apiKey = "";

  //Ausführung
  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"; 
    } 
  }
?>