Suche in diesem Bereich

Skip to end of metadata
Go to start of metadata


Inhaltsverzeichnis dieser Seite

Allgemein

Systembenachrichtigungen sind asynchrone Benachrichtigungen, die dich über den Status eines Auftrages informieren. Sie werden zeitverzögert versendet, da andere Instanzen wie z. B. eine Registry in die Verarbeitung des Prozesses involviert sind.
Das System versendet zwei Arten asynchroner Antwort-Typen: 

  • Auftragsbenachrichtigungen und

Auftragsbenachrichtigungen sind Antworten des Systems, die mit einem Auftrag zusammenhängen, der an das System gesendet wurde. Das System sendet bei einem eingehenden Auftrag in Echtzeit (synchron) sofort eine Systemantwort (Response) mit dem Statustyp notify, die den Start der Verarbeitung meldet.
Nach der Verarbeitung des Auftrages sendet das System entsprechend zeitverzögert eine Auftragsbenachrichtigung mit dem endgültigen Status des Auftrages, der entweder success  bei erfolgreicher oder failed  bei einer fehlgeschlagenen Verarbeitung sein kann.

Ereignisbenachrichtigungen sind Benachrichtigungen, die durch externe Ereignisse, wie z. B. einem ausgehenden Transfer oder einer Inhaber-Validierung ausgelöst werden Ereignisbenachrichtigungen werden an den Besitzer des Objektes gesendet. Es gibt verschiedene Ereignisse im System die eine Benachrichtigung auslösen können.

TransferOut
  • transfer_start
    Start eines ausgehenden Domaintransfers
  • transfer_autoack
    Automatische Bestätigung eines ausgehende Transfers einer Domain (AutoAck). Nur für gTLDs.
  • transfer_autonack
    Automatische Ablehnung eines ausgehende Transfers einer Domain (AutoNack).
  • transfer_reminder
    Erinnerung an einen laufenden Transfer
  • domain_away
    Löschung einer Domain aus dem Bestand, z. B. bei Domain-Tansfers ohne Beteiligung des Registrars.
DomainAutoUpdate
  • autoupdate_dns_error
    Erfolgreiche Ausführung einer automatischen Aktualisierung.
    Nur bei .de-Domains. Eine automatische Aktualisierung wird nur durchgeführt, wenn die Konnektivitätsprüfung, die ein Teil des Registrierungsprozesses ist, fehlgeschlagen ist.
  • autoupdate_dns_success
    Erfolgreiche Konnektivitätsprüfung
  • autoupdate_deferred_success
    Erfolgreiches nachgelagters AutoUpdate
  • autoupdate_deferred_error
    Fehlgeschlagenes nachgelagters AutoUpdate  
OCVAL (OwnerC-Validierung)
  • ocval_reminder
    Erinnerung an die Abschaltung der Domain (5 Tage vorher).
  • ocval_activation
    Information über die Dekonnektierung der Nameserver dekonnektiert wurden und die Nicht-Erreichbarkeit der Domain.
  • ocval_deactivation
    Information über die Rekonnektierung der Nameserver und die Erreichbarkeit der Domain.

Konfiguration in der Benutzeroberfläche

Die Benachrichtigungen werden über die AutoDNS Benutzeroberfläche konfiguriert (Benutzereinstellungen → Benutzerprofil → API-Einstellungen).

Konfiguration für E-Mail

Für E-Mail können drei verschiedene Benachrichtigungsformate festgelegt werden:

  • Standard : Der Inhalt besteht aus Text und XML.
  • XML : Der Inhalt besteht aus reinem XML.
  • JSON : DerInhalt besteht aus reinem JSON.

Konfiguration für Polling

Für Polling können drei verschiedene Benachrichtigungsformate festgelegt werden.
Das eingestellte Benachrichtigungsformat wird verwendet, sofern die Nachricht nicht abgeholt wird und vom System per E-Mail verschickt wird.

  • XML: Der Inhalt besteht aus reinem XML.
  • JSON: DerInhalt besteht aus reinem JSON.
  • EPP: Der Inhalt besteht aus reinem EPP XML ( Wird automatisch eingestellt sobald EPP-API aktiviert ist ).

Konfiguration für Push

Für Push können zwei verschiedene Benachrichtigungsformate festgelegt werden.
Das eingestellte Benachrichtigungsformat wird verwendet, sofern die Nachricht nicht abgeholt wird und vom System per E-Mail verschickt wird.

  • XML: Der Inhalt besteht aus reinem XML.
  • JSON: Der Inhalt besteht aus reinem JSON.

Bitte beachte, dass Push-Nachrichten über eine E-Mail-Weiterleitung nicht zugestellt werden können.

Polling

Polling ist das aktive Abrufen von Systembenachrichtigungen durch den Benutzer. Die Benachrichtigungen liegen im strukturierten Format vor und werden nach dem FIFO-Prinzip verarbeitet.

Benachrichtigungen abrufen

  • JSON: Die aktuelle Systemmeldung kann über die GET /poll-Route abgerufen werden.
  • XML: Die aktuelle Systemmeldung kann über den Auftragstyp 0905 abgerufen werden.
  • EPP: Wenn EPP aktiviert ist, wird der Benutzer automatisch auf Polling eingestellt.

Beispiel für JSON, XML und EPP

Request
GET /poll
Response
{
    "stid": "20180926-stid",
    "status": {
        "code": "S0905",
        "text": "Die Benachrichtigung wurde erfolgreich abgerufen.",
        "type": "SUCCESS"
    },
    "object": {
        "type": "message",
        "value": "1819917"
    },
    "data": [
        {
            "summary": 1,
            "message": {
                "id": 1819917,
                "job": {
                    "id": 4295609745,
                    "domain": {
                        "created": "2018-09-26T15:11:21.000+0200",
                        "owner": {},
                        "updater": {},
                        "name": "example.com",
                        "expire": "2019-09-26T15:11:20.000+0200",
                        "payable": "2019-09-26T15:11:21.000+0200",
                        "ownerc": {
                            "id": 100
                        },
                        "adminc": {
                            "id": 100
                        },
                        "techc": {
                            "id": 100
                        },
                        "registryStatus": "LOCK",
                        "nameServers": [
                            {
                                "name": "a.ns14.net"
                            },
                            {
                                "name": "b.ns14.net"
                            },
                            {
                                "name": "c.ns14.net"
                            },
                            {
                                "name": "d.ns14.net"
                            }
                        ],
                        "lastAction": "CREATE",
                        "authinfo": "gg9o3FFL/hzNbuPw",
                        "autoRenewStatus": "TRUE",
                        "registrarStatus": "ACTIVE",
                        "rddsOptIn": "NOT_SET"
                    }
                },
                "stid": "20180926-stid",
                "object": {
                    "type": "domain",
                    "value": "example.com"
                },
                "status": {
                    "code": "S0101",
                    "type": "SUCCESS"
                }
            }
        }
    ]
}
Request
<request>
    <auth>
        <user>USER</user>
        <context>CONTEXT</context>
        <password>PASSWORD</password>
    </auth>
    <task>
        <code>0905</code>
    </task>
</request>
Response
<response>
    <result>
        <data>
            <summary>1</summary>
            <message>
                <id>1855680</id>
                <owner>
                    <user>alex_normal_plus</user>
                    <context>4</context>
                </owner>
                <job>
                    <domain>
                        <name>example.com</name>
                        <expire>2019-10-15 14:02:40</expire>
                        <payable>2019-10-15 14:02:41</payable>
                        <ownerc>100</ownerc>
                        <adminc>100</adminc>
                        <techc>100</techc>
                        <nic_member_label>VGRS-TEST</nic_member_label>
                        <registry_status>LOCK</registry_status>
                        <nserver>
                            <name>a.ns14.net</name>
                        </nserver>
                        <nserver>
                            <name>b.ns14.net</name>
                        </nserver>
                        <nserver>
                            <name>c.ns14.net</name>
                        </nserver>
                        <nserver>
                            <name>d.ns14.net</name>
                        </nserver>
                        <period>1</period>
                        <authinfo>S0Lygv+ZkNbniICm</authinfo>
                        <autorenew>true</autorenew>
                        <confirm_order>1</confirm_order>
                        <confirm_owner_consent>0</confirm_owner_consent>
                        <registrar_status>ACTIVE</registrar_status>
                        <rdds_opt_in>NOT_SET</rdds_opt_in>
                        <owner/>
                        <updater/>
                        <created>2018-10-15 14:02:41</created>
                    </domain>
                    <job_id>4295625406</job_id>
                    <status>
                        <code>S0101</code>
                        <type>success</type>
                        <object>
                            <type>domain</type>
                            <value>example.com</value>
                        </object>
                    </status>
                    <stid>20181015-app1-3788</stid>
                </job>
                <created>2018-10-15 14:03:02</created>
            </message>
        </data>
        <status>
            <code>S0905</code>
            <text>Die Benachrichtigung wurde erfolgreich abgerufen.</text>
            <type>success</type>
            <object>
                <type>message</type>
                <value>1855680</value>
            </object>
        </status>
    </result>
    <stid>20181015-app1-3805</stid>
</response>



Request
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
	<command>
		<poll op="req" />
		<clTRID>ABC-12345</clTRID>
	</command>
</epp>
Reponse
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:domainrobot="urn:org:domainrobot:ns:ext-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:ro="urn:org:domainrobot:ns:contact:ro-1.0" xmlns:xxx="urn:org:domainrobot:ns:contact:xxx-1.0" xmlns:ca="urn:org:domainrobot:ns:contact:ca-1.0" xmlns:cat="urn:org:domainrobot:ns:contact:cat-1.0" xmlns:jobs="urn:org:domainrobot:ns:contact:jobs-1.0" xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0" xmlns:aero="urn:org:domainrobot:ns:contact:aero-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1" xmlns:host="urn:ietf:params:xml:ns:host-1.0" xmlns:hk="urn:org:domainrobot:ns:contact:hk-1.0" xmlns:bank="urn:org:domainrobot:ns:contact:bank-1.0" xmlns:it="urn:org:domainrobot:ns:contact:it-1.0" xmlns:barcelona="urn:org:domainrobot:ns:contact:barcelona-1.0" xmlns:au="urn:org:domainrobot:ns:contact:au-1.0" xmlns:uk="urn:org:domainrobot:ns:contact:uk-1.0" xmlns:swiss="urn:org:domainrobot:ns:contact:swiss-1.0" xmlns:ru="urn:org:domainrobot:ns:contact:ru-1.0">
  <response>
    <result code="1301">
      <msg lang="en">Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ count="1" id="880369">
      <qDate>2017-07-14T13:46:33.000Z</qDate>
    </msgQ>
    <resData>
      <domain:panData>
        <domain:name paResult="1">domain.com</domain:name>
        <domain:paTRID>
          <clTRID>EXAMPLE-123456789</clTRID>
          <svTRID>20170731-app1-10001</svTRID>
        </domain:paTRID>
        <domain:paDate>2017-07-31T13:46:33.000Z</domain:paDate>
      </domain:panData>
      <domain:infData>
        <domain:name>domain.com</domain:name>
        <domain:registrant>23022508</domain:registrant>
        <domain:contact type="admin">23022508</domain:contact>
        <domain:contact type="tech">23022508</domain:contact>
        <domain:ns>
          <domain:hostAttr>
            <domain:hostName>c.ns14.net</domain:hostName>
          </domain:hostAttr>
          <domain:hostAttr>
            <domain:hostName>d.ns14.net</domain:hostName>
          </domain:hostAttr>
        </domain:ns>
        <domain:crDate>2017-07-14T13:46:23.000Z</domain:crDate>
        <domain:exDate>2019-07-14T13:46:23.000Z</domain:exDate>
        <domain:authInfo>
          <domain:pw>L14HY+jaa45odO0v</domain:pw>
        </domain:authInfo>
      </domain:infData>
    </resData>
    <extension>
      <domainrobot:domain>
        <domainrobot:zonec>23022508</domainrobot:zonec>
        <domainrobot:trustee>0</domainrobot:trustee>
        <domainrobot:privacy>0</domainrobot:privacy>
      </domainrobot:domain>
    </extension>
    <trID>
      <clTRID>a2d8e98e-c703-4368-a986-a1fdfa42b8fe</clTRID>
      <svTRID>12345678</svTRID>
    </trID>
  </response>
</epp>

Benachrichtigungen bestätigen

JSON: Eine Systemmeldung kann über die Route PUT /poll/{id} bestätigt werden. Die ID kann der Benachrichtigung entnommen werden.

XML: Eine bestimmte Systemmeldung kann mit der Aufgabe 0906 bestätigt werden. Die ID kann der Benachrichtigung entnommen werden.

  • Benachrichtigungen gelten als "erfolgreich zugestellt" wenn diese durch den Benutzer bestätigt wurden.
  • Wird eine Benachrichtigung nicht innerhalb von 24 Stunden durch den Benutzer bestätigt, erfolgt die Zustellung auf die Fallback-E-Mail (reply_to aus dem Request).

Beispiel für JSON, XML und EPP

Request
PUT /poll/{id}
Response
{
    "stid": "20180926-stid",
    "status": {
        "code": "S0906",
        "text": "Die Benachrichtigung wurde erfolgreich bestätigt.",
        "type": "SUCCESS"
    },
    "object": {
        "type": "message",
        "value": "1819853"
    }
}
Request
<request>
    <auth>
        <user>USER</user>
        <context>CONTEXT</context>
        <password>PASSWORD</password>
    </auth>
    <task>
        <code>0906</code>
       <message>
            <id>650664</id>
        </message>
    </task>
</request>
Response
<response>
    <result>
        <data>
            <summary>0</summary>
            <message>
                <id>650664</id>
            </message>
        </data>
        <status>
            <code>S0906</code>
            <text>Die Benachrichtigung wurde erfolgreich bestätigt.</text>
            <type>success</type>
            <object>
                <type>message</type>
                <value>650664</value>
            </object>
        </status>
         <stid>20181015-app1-3162</stid>
	 </result>
</response>
Request
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
	<command>
		<poll op="ack" msgID="627787" />
		<clTRID>ABC-12346</clTRID>
	</command>
</epp>
Reponse
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <response>
        <result code="1000">
            <msg lang="en">Command completed successfully</msg>
        </result>
        <msgQ count="0" id="627787" />
        <trID>
            <clTRID>ABC-12346</clTRID>
        </trID>
    </response>
</epp>

Push (Webhook)

Push ist das passive Abrufen von Systembenachrichtigungen. Hierbei werden die Benachrichtigungen durch das System an eine angegebene Adresse (URL)  per HTTPS versendet.

Das Ziel, kann die Systembenachrichtigungen aus dem HTTP Request Body auslesen und muss der erhalten mit einem HTTP 200 OK bestätitgen

Zieladressen

Die Nachrichten werden, via POST an die HTTPS-Zieladresse versendet.

Redirect werden NICHT weitergefolgt.

Benachrichtigungen bestätigen

Benachrichtigungen gelten als "erfolgreich zugestellt" wenn der Server als Antwort einen HTTP Status 200 sendet.
Kann eine Benachrichtigung nicht innerhalb von 24 Stunden zugesendet werden, erfolgt die Zustellung auf die Fallback-E-Mail (reply_to aus dem Request).

Quelladresse der Push-Benachrichtigungen

Die SourceIP ist 62.116.129.216. Konfigurier deine Firewall entsprechend, damit die Push-Benachrichtigungen nicht herausgefiltert werden.

Beispiel für ein PHP-Skript zum Schreiben der Push-Meldung in eine Textdatei

Dieses Skript verarbeitet die Push-Meldung und schreibt diese in die Datei output.txt.  Hinterlege die URL, unter der dieses Script erreichbar ist, im Benutzerprofil unter den API-Einstellungen.

<?php
// Helper methods
function getHeaderList() {
        $headerList = array();
        foreach ($_SERVER as $name => $value) {
                if (preg_match('/^HTTP_/',$name)) {
                        $name = strtr(substr($name,5),'_',' ');
                        $name = ucwords(strtolower($name));
                        $name = strtr($name,' ','-');
                        // Add to list
                        $headerList[$name] = $value;
                 }
        }
    return $headerList;
}

// Variables
$file = "output.txt";

// Fetch headers
$headers = "";
foreach (getHeaderList() as $name => $value) {
   $headers .= $name . ': ' . $value . "\n";
}

// Fetch body
$body = file_get_contents('php://input');

// Fetch current date
$now = date('Y-m-d H:m:s', time());

$content = "Date: $now\nHeaders: $headers\nBody: $body\n---------------------------------------------------------------------------------\n";

// Write to file
file_put_contents($file, $content, FILE_APPEND);
?>

E-Mail

Benachrichtigungen werden per E-Mail versendet (Standardeinstellung).