Ticket-Login ist ein offener Anmeldedienst, den jeder kostenlos in sein Ticketsystem bzw. Shopsystem integrieren kann. Er ermöglicht gerade in heterogenen Umgebungen dem Endkunden mit nur einem Usernamen / Passwort für alle Systeme einen einfachere Verwaltung seiner Anmeldedaten sowie Rechnungs- und Lieferdaten bis hin zur Auftragsverfolgung.

Anmeldung

Sie können Ticket-Login leicht in Ihr System integrieren. Das System basiert auf dem Single-Sign-On Verfahren OpenID. Es nutzt einen erweiterten SREG Eintrag, um Daten wie Adresse, Zahlart, etc. zu übertragen. Zur Integration müssen Sie wie folgt vorgehen:

Im Standard sind nur die folgenden Eigenschaften im SREG vorhanden:

{
      'fullname':'Full Name'
      'nickname':'Nickname',
      'dob':'Date of Birth',
      'email':'E-mail Address',
      'gender':'Gender',
      'postcode':'Postal Code',
      'country':'Country',
      'language':'Language',
      'timezone':'Time Zone',
  }
  

Diese erweitern Sie um die folgenden Eigenschaften:

{
      'cards': 'Customer Cards',
      'address': 'Invoice Address',
      'delivery': 'Delivery Address',
      'payment': 'Default Payment',
  }
  

Diese Felder beinhalten JSON codiert detailierte Angaben zu Kundenkarten, Rechnungsadresse, Lieferadresse und gewünschte Zahlungsarten.

Kundenkarten

Das Feld "cards" beinhaltet ein Array mit allen IDs der Kundenkarten, die der Kunde besitzt

Rechnungsadresse

Das Feld "address" beinhaltet ein Dictionary mit allen Adressfeldern:

{
      'sex': int,
      'titel': string,
      'lastname': string,
      'firstname': string,
      'company': string,
      'street': string,
      'zipcode': string,
      'city': string,
      'country': string,
      'phone': string,
      'email': string,
  }
  

Das Feld "sex" ist die Anrede und erwartet 0 für "Herr", 1 für "Frau".

Lieferadresse

Das Feld "delivery" beinhaltet ein Dictionary mit allen Adressfeldern und beinhaltet die gleichen Felder wie address.

Zahlungsarten

Das Feld "payment" beinhaltet ein Array mit der Reihenfolge der vom Kunden gewünschten Zahlarten. Die erste Zahlart wünscht er sich am meisten - ist die nicht vorhanden, nehmen Sie die nächste...

{
      '8':'Rechnung / Vorauskasse',
      '17':'Kreditkarte',
      '20':'PayPal',
      '21':'SEPA-Lastschrift',
      '23':'SOFORT Überweisung',
  }
  

Weitere Zahlarten auf Anfrage.




Service-Funktionen

Die Service Funktionen basieren alle auf dem XMLRPC Protokoll. Sie sind auf der Seite des Ticketsystems bzw. Shopsystems bereitzustellen. Als Schutz wird ein Token vereinbart, welches bei jedem Aufruf mit übergeben wird.

Aufträge abrufen

Diese Funktion lädt alle Aufträge des Kunden aus dem entsprechenden Ticketsystem / Shop.

def poll_orders(token, openid, search):
           return []
  

Die poll_orders Funktion gibt alle Aufträge in einem Array für eine OpenID basierend auf einer Suche zurück. Token = String, OpenID = String, Search = Dictonary. Ein Auftrag sieht wie folgt aus:

[
      {
          'state': 'int => 0 = reserviert, 1 = ls, 2 = gekauft, 3 = GS',
          'canceled': 'int => 1=Teilstorno, 2=Vollstorno',
          'orderid': 'string => Auftragsnummer für Kunden',
          'internal_orderid': 'string: => interne Auftragsnummer',
          'order_date': 'datetime => Auftragsdatum',
          'ts': 'datetime => letzte Änderung am Auftrag',
          'amount': 'real => Auftragswert / Umsatz',
          'currency': 'string => Währung in ISO => EUR',
          'contents': 'string => Zusammenfassung der Waren des Auftrags',
          'deliver_rcpt': 'string => Empfänger der Waren',
          'deliver_type': 'string => Versandart',
          'deliver_data': 'string => Tracking-Nr oder Mailadresse des Empfängers',
          'deliver_tracking': 'string => evtl. Tracking-URL',
          'deliver_done': 'boolean => Versand abgeschlossen',
          'payment_type': 'string => Zahlart als Text',
          'payment_done': 'boolean => Zahlung abgeschlossen',
          'items': [ # Auftragspositionen Array
              {
                  'name': 'string => Artikelbezeichnung',
                  'uuid': 'string => eindeutige ID des Warenkorbelements (Tickets => für print@home download etc.)',
                  'price': 'real => Preis der Position',
                  'currency': 'string => Währung der Position in ISO => EUR',
                  'date': 'datetime => Datum der Postion (z.B. der Veranstaltung) oder NULL',
              },
          ]
      }
  ]
  

Folgende Suchoptionen stehen zur Verfügung:

{
       'ts':'datetime => Suche nach Aufträgen, die seit ts geändert wurden',
       'internal_orderid':'string => Suche nach Auftragsnummer',
   }