Suche in diesem Bereich

Skip to end of metadata
Go to start of metadata

Anleitung zur vollständigen Automatisierung der Laufzeitverlängerung einer Domain (DomainRenew).


Inhaltsverzeichnis dieser Seite

Grundlagen der JSON-und XML-API

Alle wichtigen Informationen für die Nutzunge der JSON- und XML-API finden Sie unter den folgenden Links:

Prozess-Übersicht

Ablauf-Diagramm

Auftragstypen, Codes und Routen

AuftragstypCodeRoute
DomainRenew0101003PUT /domain/ {name} /_renew
PollInfo0905GET /poll
PollConfirm0906PUT /poll/$id
DomainInfo0105GET / domain/$name

Voraussetzungen

Domain-Daten abrufen

Für den DomainRenew-Auftrag wird das Fälligkeitsdatum der Domain benötigt. Es kann mit einem DomainInfo-Auftrag abgerufen werden. Das Fälligkeitsdatum ist im Feld payable angegeben. Im Beispiel ist es 2020-12-31 12:00:00.

Request
GET /domain/example.com
Response
{
    "stid": "20180926-stid",
    "status": {
        "code": "S0105",
        "text": "Domaindaten wurden erfolgreich ermittelt.",
        "type": "SUCCESS"
    },
    "object": {
        "type": "domain",
        "value": "example.com"
    },
    "data": [
        {
            "created": "2018-09-26T14:54:03.000+0200",
            "updated": "2018-09-26T14:54:10.000+0200",
            "owner": {
                "user": "USER",
                "context": CONTEXT
            },
            "updater": {
                "user": "USER",
                "context": CONTEXT
            },
            "name": "example.com",
            "payable": "2020-12-31T12:00:00.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"
                }
            ],
            "trustee": false,
            "privacy": false,
            "authinfo": "J/w0Xpn66I87YVty",
            "domainsafe": false,
            "validCertificate": false,
            "autoRenewStatus": "TRUE",
            "registrarStatus": "ACTIVE",
            "rddsOptIn": "NOT_SET"
        }
    ]
}
Request
<request>
  <auth>
    <user>USER</user>
    <password>PASSWORD</password>
    <context>CONTEXT</context>
  </auth>
  <task>
    <code>0105</code>
    <domain>
      <name>example.com</name>
    </domain>
  </task>
</request>
Response
<response>
  <result>
    <data>
      <domain>
        <name>example.com</name>
        <payable>2020-12-31 12:00:00</payable>
        <ownerc>100</ownerc>
        <adminc>100</adminc>
        <techc>100</techc>
        <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>
        <status>SUCCESS</status>
        <use_trustee>false</use_trustee>
        <use_privacy>false</use_privacy>
        <authinfo>J/w0Xpn66I87YVty</authinfo>
        <domainsafe>false</domainsafe>
        <certificate>false</certificate>
        <autorenew>true</autorenew>
        <registrar_status>ACTIVE</registrar_status>
        <rdds_opt_in>NOT_SET</rdds_opt_in>
        <owner>
          <user>USER</user>
          <context>CONTEXT</context>
        </owner>
        <updater>
          <user>USER</user>
          <context>CONTEXT</context>
        </updater>
        <created>2018-09-26 14:54:03</created>
        <updated>2018-09-26 14:54:10</updated>
      </domain>
    </data>
    <status>
      <code>S0105</code>
      <text>Domaindaten wurden erfolgreich ermittelt.</text>
      <type>success</type>
      <object>
        <type>domain</type>
        <value>example.com</value>
      </object>
    </status>
  </result>
 <stid>20180926-stid</stid>
</response>

Ablauf

Domain verlängern

Mit dem Auftragstyp DomainRenew starten Sie die Laufzeitverlängerung einer Domain. Das zuvor ermittelte Fälligkeitsdatum ist im Auftrag erforderlich, um z.B. eine versehentliche doppelte Verlängerung zu verhindern.

DomainRenew - Beispiel

Request
PUT /domain/$name/_renew
{
      "period": {
          "period": 1,
          "unit": "YEAR"
      },
      "payable": "2020-12-31T12:00:00.000+0200",
      "removeCancelation": false
}
Response
{
    "stid": "20180928-stid",
    "status": {
        "code": "N0101003",
        "text": "Die Laufzeitverlaengerung wurde erfolgreich gestartet.",
        "type": "NOTIFY"
    },
    "object": {
        "type": "domain",
        "value": "example.com"
    },
    "data": [
        {
            "id": 4295611341
        }
    ]
}
Request
<request>
  <auth>
    <user>USER</user>
    <password>PASSWORD</password>
    <context>CONTEXT</context>
  </auth>
  <task>
    <code>0101003</code>
    <domain>
      <name>example.com</name>
      <period>1</period>
      <payable>2020-12-31 12:00:00</payable>
      <remove_cancellation>no</remove_cancellation>
    </domain>
  </task>
</request>
Response
<response>
  <result>
    <data>
      <domain_job>
        <job>
          <id>123456</id>
          <status>RUNNING</status>
        </job>
      </domain_job>
    </data>
    <status>
      <code>N0101003</code>
      <text>Die Laufzeitverlaengerung wurde erfolgreich gestartet.</text>
      <type>notify</type>
      <object>
        <type>domain</type>
        <value>example.com</value>
      </object>
    </status>
  </result>
 <stid>20180928-stid</stid>
</response>

Auftragsbenachrichtigung per Polling abrufen

Der Auftragstyp DomainRenew erzeugt automatisch einen Auftrag für die Verlängerung der Domain.
Ist der Auftrag abgearbeitet, wird eine Auftrags-Benachrichtigung erzeugt, die Aufschluss darüber gibt, ob die Laufzeitverlängerung erfolgreich war oder nicht. Da Sie diese über das Polling-Verfahren abrufen können, wird Sie auch als "Poll Message "bezeichnet

Sie müssen die Poll Message mit dem Auftragstyp PollInfo abrufen.  Das Abrufen müssen Sie mit dem Auftragstyp PollConfirm bestätigen.

Weitere Details zu asynchrone Benachrichtigungen unter :

PollInfo - Beispiel

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": "2021-12-31 12:00:00.000+0200",
                        "payable": "2021-12-31 12:00:01.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>customer</user>
                    <context>4</context>
                </owner>
                <job>
                    <domain>
                        <name>example.com</name>
                        <expire>2021-12-31 12:00:00.000+0200</expire>
                        <payable>2021-12-31 12:00:01.000+0200</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>


PollConfirm - Beispiele

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>
	 </result>
 <stid>20181015-app1-3162</stid>
</response>

Domaindaten abrufen

Nach erfolgreicher Laufzeitverlängerung können Sie das neue Fälligkeitsdatum der Domain (Feld payable) mit einem DomainInfo-Auftrag ermitteln.
Da die Domain-Laufzeit in diesem Beispiel um ein Jahr verlängert wurde, hat das Feld payable den neuen Wert 2021-12-31 00:00:00.

Request
GET /domain/example.com
Response
{
    "stid": "20180926-stid",
    "status": {
        "code": "S0105",
        "text": "Domaindaten wurden erfolgreich ermittelt.",
        "type": "SUCCESS"
    },
    "object": {
        "type": "domain",
        "value": "example.com"
    },
    "data": [
        {
            "created": "2018-09-26T14:54:03.000+0200",
            "updated": "2018-09-26T14:54:10.000+0200",
            "owner": {
                "user": "USER",
                "context": CONTEXT
            },
            "updater": {
                "user": "USER",
                "context": CONTEXT
            },
            "name": "example.com",
            "payable": "2021-12-31T00:00:00.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"
                }
            ],
            "trustee": false,
            "privacy": false,
            "authinfo": "J/w0Xpn66I87YVty",
            "domainsafe": false,
            "validCertificate": false,
            "autoRenewStatus": "TRUE",
            "registrarStatus": "ACTIVE",
            "rddsOptIn": "NOT_SET"
        }
    ]
}
Request
<request>
  <auth>
    <user>USER</user>
    <password>PASSWORD</password>
    <context>CONTEXT</context>
  </auth>
  <task>
    <code>0105</code>
    <domain>
      <name>example.com</name>
    </domain>
  </task>
</request>
Response
<response>
  <result>
    <data>
      <domain>
        <name>example.com</name>
        <payable>2021-12-31 00:00:00</payable>
        <ownerc>100</ownerc>
        <adminc>100</adminc>
        <techc>100</techc>
        <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>
        <status>SUCCESS</status>
        <use_trustee>false</use_trustee>
        <use_privacy>false</use_privacy>
        <authinfo>J/w0Xpn66I87YVty</authinfo>
        <domainsafe>false</domainsafe>
        <certificate>false</certificate>
        <autorenew>true</autorenew>
        <registrar_status>ACTIVE</registrar_status>
        <rdds_opt_in>NOT_SET</rdds_opt_in>
        <owner>
          <user>USER</user>
          <context>CONTEXT</context>
        </owner>
        <updater>
          <user>USER</user>
          <context>CONTEXT</context>
        </updater>
        <created>2018-09-26 14:54:03</created>
        <updated>2018-09-26 14:54:10</updated>
      </domain>
    </data>
    <status>
      <code>S0105</code>
      <text>Domaindaten wurden erfolgreich ermittelt.</text>
      <type>success</type>
      <object>
        <type>domain</type>
        <value>example.com</value>
      </object>
    </status>
  </result>
 <stid>20180926-stid</stid>
</response>