Ergebnis 1 bis 10 von 10
  1. #1
    Neuer Benutzer
    Registriert seit
    05.02.2015
    Beiträge
    3

    Frage API - Kunden Funktion

    Servus liebe Community,
    Ich bin grade dabei eine einfache Klasse zu der API zu schreiben und wollte jetzt mit einer Funktion Kontakt, Kunde, Benutzer und Hosting anlegen und habe es theoretisch auch alles richtig doch ich bekomme die Antwort:

    Error while calling Web Service: Invalid token

    Dies ist die Funktion:
    PHP-Code:
        public function UserAdd($salutation$firstname$lastname$address1$zipcode$city$country$email$domain) {

            
    // ContactAdd
            
    $aufruf $this->authcode('ContactAdd');
            
    $auth $this->auth;
            
    $aufruf $this->wsdlurl();
            
    $client $this->client;
            
    $params = array('auth' => $auth,
                            
    'salutation' => $salutation,
                            
    'firstname' => $firstname,
                            
    'lastname' => $lastname,
                            
    'address1' => $address1,
                            
    'zipcode' => $zipcode,
                            
    'city' => $city,
                            
    'country' => $country,
                            
    'email' => $email
                            
    );
            try {
                
    $response $client->ContactAdd($params);
            } catch (
    SoapFault $soapFault) {
                die(
    "Error while calling Web Service: " $soapFault->faultstring "\n");
            }
            
    $ContactID $response->id;

            
    // CustomerAdd
            
    $aufruf $this->authcode('CustomerAdd');
            
    $auth $this->auth;
            
    $aufruf $this->wsdlurl();
            
    $client $this->client;
            
    $params = array('auth' => $auth,
                            
    'owner_c' => $ContactID,
                            
    'admin_c' => $ContactID,
                            
    'billing_c' => $ContactID,
                            
    'locked' => 0,
                            );
            try {
                
    $response $client->CustomerAdd($params);
            } catch (
    SoapFault $soapFault) {
                die(
    "Error while calling Web Service: " $soapFault->faultstring "\n");
            }
            
    $CustomerID $response->cid;

            
    //UserAdd
            
    $aufruf $this->authcode('UserAdd');
            
    $auth $this->auth;
            
    $aufruf $this->wsdlurl();
            
    $client $this->client;
            
    srand((double)microtime()*1000000);
            
    $Buchstaben = array("a""b""c""d""e""f""g""h""k""m""n""p""q""r""s""t""u""v""w""x""y""z");
            
    $Zahlen = array("2""3""4""5""6""7""8""9");
            
    $Sonderzeichen = array(".""!""%""&""=""?");
            
    $Laenge 10;
            for(
    $i 0$password ""strlen($password) < $Laenge$i++)
            {
                    if(
    rand(02) == && isset($Buchstaben))
                    {
                            
    $password .= $Buchstaben[rand(0count($Buchstaben))];
                    }
                    elseif(
    rand(02) == && isset($Zahlen))
                    {
                            
    $password .= $Zahlen[rand(0count($Zahlen))];
                    }
                    elseif(
    rand(02) == && isset($Sonderzeichen))
                    {
                            
    $password .= $Sonderzeichen[rand(0count($Sonderzeichen))];
                    }
            }

            
    $params = array('auth' => $auth,
                            
    'customer' => $CustomerID,
                            
    'contact' => $ContactID,
                            
    'login' => $email,
                            
    'password' => $password,
                            );
            try {
                
    $response $client->UserAdd($params);
            } catch (
    SoapFault $soapFault) {
                die(
    "Error while calling Web Service: " $soapFault->faultstring "\n");
            }
            
    $UserID $response->id;

            
    // HostingSubscriptionAdd
            
    $aufruf $this->authcode('HostingSubscriptionAdd');
            
    $auth $this->auth;
            
    $aufruf $this->wsdlurl();
            
    $client $this->client;
            
    $params = array('auth' => $auth,
                            
    'subscriptionname' => $domain,
                            
    'plan' => 'Starter'
                            
    );
            try {
                
    $response $client->HostingSubscriptionAdd($params);
            } catch (
    SoapFault $soapFault) {
                die(
    "Error while calling Web Service: " $soapFault->faultstring "\n");
            }
            
    $HostingID $response->id;
            
    $subscriptionname $response->subscriptionname;

            
    // HostingDomainAdd
            
    $aufruf $this->authcode('HostingDomainAdd');
            
    $auth $this->auth;
            
    $aufruf $this->wsdlurl();
            
    $client $this->client;
            
    $params = array('auth' => $auth,
                            
    'subscriptionname' => $subscriptionname,
                            
    'domain' => $domain,
                            
    'mail' => 1
                            
    );
            try {
                
    $response $client->HostingDomainAdd($params);
            } catch (
    SoapFault $soapFault) {
                die(
    "Error while calling Web Service: " $soapFault->faultstring "\n");
            }
            
    $DomainID $response->id;

            echo 
    $ContactID.$CustomerID.$UserID.$HostingID.$DomainID;

        } 
    - Das echo am ende soll erstmal nur dazu dienen um zu schauen ob auch alle erstellt wurden.
    - Die Funktion 'authcode' generiert den passenden Code für die jewahlige abfrage
    - & die 'wsdlurl'-Funktion generiert diese...

    Würde mich freuen wenn jemand den Fehler finden würde...

  2. #2
    Neuer Benutzer
    Registriert seit
    05.02.2015
    Beiträge
    3
    Ich bin jetzt schon ein Stück weiter gekommen und habe jetzt dieses Problem:

    Error while calling Web Service: Invalid subscription name

    Ich wollte eigentlich die Domain nutzen, dann habe ich es mit der KundenID versucht aber schluckt der auch nicht

  3. #3
    Neuer Benutzer
    Registriert seit
    05.02.2015
    Beiträge
    3
    Auch das Problem hab ich jetzt gelöst... Nur wie Weise ich jetzt den Web-Account einem Benutzer zu?

  4. #4
    LiveConfig-Team Avatar von kk
    Registriert seit
    10.12.2010
    Beiträge
    3.579
    Sie legen zuerst einen Kontakt an (ContactAdd)
    Mit diesem Kontakt legen Sie einen Kunden an (CustomerAdd)
    Mit diesem Kunden können Sie einen Vertrag anlegen (HostingSubscriptionAdd)
    Einem Vertrag können Sie dann z.B. eine Domain zuweisen (HostingDomainAdd)

    Viele Grüße

    -Klaus Keppler

  5. #5
    Benutzer
    Registriert seit
    01.06.2014
    Beiträge
    54
    Guten Tag,

    es wäre schön, wenn die Lösungen auch gepostet werden könnten. Ich stehe vor einem ähnlichen Problem.

    Das Einrichten eines Kontaktes läuft über einen PHP-Helper, welcher folgende Methoden aufruft

    PHP-Code:
    $auth=$this->GetSoapAuth();
    $wsdl_url=$this->GetSoapWsdl();
    $client=$this->GetSoapClient($wsdl_url); 
    Mit "TestSayHello" funktioniert das auch und ich erhalte die korrekte Rückantwort.

    Mit ContactAdd funktioniert dies nicht - dort erhalte ich die Rückmeldung Error while calling Web Service: Invalid token.


    Wenn ich die Parameter über var_dump ausgeben lasse, erhalte ich folgendes:


    array(3) { ["auth"]=> array(3) { ["login"]=> string(5) "admin" ["timestamp"]=> string(24) "2015-07-03T13:58:17.000Z" ["token"]=> string(28) "abcdefghijkl=" } ["firstname"]=> string(6) "Max" ["lastname"]=> string(5) "Mustermann" }



    array(11) { ["auth"]=> array(3) { ["login"]=> string(5) "admin" ["timestamp"]=> string(24) "2015-07-03T13:58:17.000Z" ["token"]=> string(28) "abcdefghijkl=" } ["type"]=> int(1) ["company"]=> string(11) "Musterfirma" ["salutation"]=> int(0) ["firstname"]=> string(3) "Max" ["lastname"]=> string(10) "Mustermann" ["address1"]=> string(15) "Musterstrasse 1" ["city"]=> string(11) "Musterstadt" ["country"]=> string(11) "Deutschland" ["phone"]=> string(4) "0000" ["mobile"]=> string(4) "0000" }
    Falls dies wichtig ist: Der Token aus Abfrage 1 ist identisch mit dem Token aus Abfrage 2.

    Ich freue mich über Ratschläge und wünsche einen schönen Start ins Wochenende.

  6. #6
    LiveConfig-Team Avatar von cr
    Registriert seit
    14.02.2011
    Beiträge
    71
    Hallo,

    wie generieren Sie denn Ihren auth Token?

    Hier im Handbuch ist ggf. ein Beispiel: https://www.liveconfig.com/de/handbu...authentication

    Viele Grüße
    Christoph Russow
    Die Signatur befindet sich aus technischen Gründen auf der Rückseite dieses Posts.

  7. #7
    Benutzer
    Registriert seit
    01.06.2014
    Beiträge
    54
    Ah, da haben Sie mich auf etwas gebracht. Der Token wird abhängig von der aufzurufenden Funktion generiert - und die war hier fest eingetragen - daher funktionierte TestSayHello (Fest eingetragen), aber nicht ContactAdd.

    Dies konnte ich nun beheben.

    Allerdings habe ich noch etwas festgestellt:

    Mein Aufruf hat folgende Parameter:

    array(12) { ["auth"]=> array(3) { ["login"]=> string(5) "admin" ["timestamp"]=> string(24) "2015-07-03T14:20:14.000Z" ["token"]=> string(28) "abcdef" } ["type"]=> int(1) ["company"]=> string(6) "Testfirma" ["salutation"]=> int(0) ["firstname"]=> string(6) "abcdef" ["lastname"]=> string(5) "abcdef" ["address1"]=> string(3) "- -" ["zipcode"]=> string(5) "12345" ["city"]=> string(1) "-" ["country"]=> string(2) "DE" ["phone"]=> string(1) "-" ["mobile"]=> string(1) "-" }
    Laut Dokumentation sollte ein Kontakt mit dem Wert "type" => int(1) als Firma/Organisation angelegt werden. In diesem Fall wurde der Kontakt aber als Privatperson eingetragen (laut LC-Backend).

    Gibt es eigentlich eine Möglichkeit, angelegten Kontakte über API oder LC zu löschen?

  8. #8
    Erfahrener Benutzer
    Registriert seit
    02.04.2012
    Beiträge
    648
    Zitat Zitat von Roman Beitrag anzeigen
    Gibt es eigentlich eine Möglichkeit, angelegten Kontakte über API oder LC zu löschen?
    über LC in der GUI definitiv nicht, das wurde schon öfter angesprochen.

  9. #9
    Benutzer
    Registriert seit
    01.06.2014
    Beiträge
    54
    Hm, okay. Ich verstehe ja, dass es über die API nicht möglich ist. Aber über die GUI würde ich das eigentlich erwarten.
    Gibt es denn Argumente gegen diese Möglichkeit?

  10. #10
    Erfahrener Benutzer
    Registriert seit
    02.04.2012
    Beiträge
    648
    ich glaube nicht, es wurde schlicht noch nicht gemacht, weil es nicht so wichtig ist

    http://www.liveconfig.com/de/forum/t...andles-löschen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •