﻿<?php
  $wsdlUrl = ""; //Die URL Ihrer Schnittstelle
  $client = new SoapClient($wsdlUrl);
  
  //Erzeugen des Requests
  $saveOrCreateSubscriberRequest = new StdClass();
  //Setzen der Mandanten-ID
  $saveOrCreateSubscriberRequest->mandatorId = 0;
  //Sollen die Listen Additiv hinzugefügt werden, wenn der Abonnent bereits im System ist?
  $saveOrCreateSubscriberRequest->listsAdditive = false;
  //Sollen leere Felder gelöscht werden, wenn der Abonnent bereits im System ist?
  $saveOrCreateSubscriberRequest->deleteBlankFields = false;
  //Soll dem Abonnenten der letzte Newsletter der Verteilerliste zugesendet werden, wenn er die Liste neu abonniert?
  $saveOrCreateSubscriberRequest->sendLastNewsletter = false;
  //Soll dem Benutzer die Willkommensnachricht zugesendet werden?
  $saveOrCreateSubscriberRequest->sendWelcome = false;
  //Soll die Option "AntiSpam" verwendet werden?
  $saveOrCreateSubscriberRequest->filterAntiSpam = true;
  
  //Abonnenten, die in diesem Request hinzugefügt werden sollen
  $saveOrCreateSubscriberRequest->subscribers = array();
  
  //Objekt für den Abonnenten erzeugen
  $subscriber = new StdClass();
  //E-Mail Adresse angeben
  $subscriber->subscriberEmail = "user@example.com";
  //Verteilerlisten angeben
  $subscriber->newsletterListIds = array(1);
  //ID des Mandanten angeben
  $subscriber->mandatorId = 0;
  //ID des Templates, falls ein Double-Opt-In verwendet werden soll
  $subscriber->doubleOptinTemplateId = 0;
  //ID des Tempaltes für Bestätigungen von Änderungen am Profil
  $subscriber->changeProfileTemplateId = 0;
  
  //Persönliche Daten des Abonnenten angeben
  $subscriber->subscriberFields = array();
  
  //Erste persönliche Information
  $subscriberField = new StdClass();
  //Feldnamen angeben
  $subscriberField->fieldName = utf8_encode("VORNAME");
  //Feldwert angeben
  $subscriberField->fieldValue = utf8_encode("Vorname");
  //Soll eine eventuelle Änderung bestätigt werden
  $subscriberField->confirmChange = false;
  //Feld dem Abonnenten hinzufügen
  array_push($subscriber->subscriberFields, $subscriberField);
  
  //Zweite persönliche Information
  $subscriberField = new StdClass();
  $subscriberField->fieldName = utf8_encode("NACHNAME");
  $subscriberField->fieldValue = utf8_encode("Nachname");
  $subscriberField->confirmChange = false;  
  array_push($subscriber->subscriberFields, $subscriberField);
  
  //Abonnent dem Request hinzufügen
  array_push($saveOrCreateSubscriberRequest->subscribers, $subscriber);
  
  /*
   * -----------------
   * 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!
   */
  $saveOrCreateSubscriberRequest->apiKey = "";
  try {
    $result = $client->SaveOrCreateSubscriber($saveOrCreateSubscriberRequest);
    var_dump($result);
  } catch (Exception $e) {
    echo "Error: " . $e->getMessage() . "\n";
  }
?>