Odnawianie usług przy użyciu API OVHcloud

Pokaż jako Markdown

Dowiedz się, jak odnawiać usługi przy użyciu API OVHcloud

Wprowadzenie

Domyślnie, OVHcloud oferuje automatyczne odnawianie usług. Istnieje jednak możliwość odnowienia usług przy użyciu API.

Niniejszy przewodnik opisuje, w jaki sposób przeprowadzić operację odnowienia usługi.

Wymagania początkowe

W praktyce

Aby użyć API do odnowienia usługi, będziesz potrzebował serviceId. Informacja ta jest dostępna poprzez API, za pomocą serviceInfos:

Możesz również skorzystać z API, aby uzyskać listę Twoich usług:

GET/service

Uzyskanie listy dostępnych strategii odnawiania

Aby uzyskać listę dostępnych strategii odnawiania usług, skorzystaj z następującego polecenia:

Lista RenewDescription pojawi się z dwoma kluczami:

  • renewPeriod: czas, na jaki ma być odnowiona usługa (w formacie zgodnym z ISO 8601);
  • strategies: lista RenewStrategy strategia odnawiania.

RenewStrategy określa cenę, a także listę usług do odnowienia. Odnowienie samej domeny to jedna strategia, odnowienie domeny i hostingu to inna strategia. Strategie obejmują listę wszystkich możliwych kombinacji danej usługi: usługi powiązane, opcje...

Przykład pobrania informacji o odnowieniu w języku Python:

import ovh
client = ovh.Client()
     
client.get('/service/12345/renew',
includeOptions=False, // Include service's option(s) (type: boolean)
)

Przykład wyniku, który możesz przeanalizować (w danym okresie czasu):

[
  {
    "renewPeriod": "P1Y",
    "strategies": [
      {
        "services": [
          12345
        ],
        "price": {
          "value": 1.99
           },
           "servicesDetails": [
             {
               "serviceType": "Domain .ovh",
               "serviceId": 12345
           }
         ]
       },
       {
         "services": [
           67890,
           12345
           ],
           "price": {
           "value": 37.87
         },
         "servicesDetails": [
           {
             "serviceType": "Hosting Perso 2014",
             "serviceId": 67890
           },
           {
             "serviceType": "Domain .ovh",
             "serviceId": 12345
           }
         ]
       }
     ]
   }
 ]

Aby dowiedzieć się więcej o formacie wyniku, skorzystaj z API renew:

Tworzenie zamówienia dotyczącego odnowienia usługi

Aby utworzyć zamówienie dotyczące odnowienia usługi, określ, którą usługę lub usługi chcesz odnowić oraz podaj okres, na jaki ma być odnowiona.

import ovh
client = ovh.Client()
 
client.post('/service/12345/renew',
    dryRun=False, // Indicates if renew order is generated (type: boolean)
    duration='P1Y',
    services=[
        67890,
        12345
    ]
)

Otrzymasz następującą odpowiedź:

{
  "expirationDate": "2018-05-16T15:49:06+02:00",
  "password": "aBcD",
  "date": "2018-05-15T15:49:06+02:00",
  "priceWithTax": {
    "value": 45.44,
    "text": "45.44 \u20ac",
    "currencyCode": "EUR"
  },
 "tax": {
    "value": 7.57,
    "text": "7.57 \u20ac",
    "currencyCode": "EUR"
  },
  "pdfUrl": "https://www.ovh.com/cgi-bin/order/displayOrder.cgi?orderId=123456789&orderPassword=aBcD",
  "orderId": 123456789,
  "url": "https://www.ovh.com/cgi-bin/order/displayOrder.cgi?orderId=123456789&orderPassword=aBcD",
  "priceWithoutTax": {
    "value": 37.87,
    "text": "37.87 \u20ac",
    "currencyCode": "EUR"
  },
 "retractionDate": null
}

Następnie zamówienie można opłacić za pośrednictwem API order:

Przykładowa operacja: odnowienie VPS

import ovh
client = ovh.Client()

myVps = "vps112233.ovh.net"
expectedRenewPeriod = "P3M"

def checkStrategy(choices, serviceId):
     
    for choice in choices:
       if choice['renewPeriod'] != expectedRenewPeriod:
           continue
       for strategy in choice['strategies']:
           services = strategy['services']
           if len(services) == 1 and serviceId in services:
                return True
     
raise ValueError('Unable to find expected service/renewPeriod in choices')
     
     
def main():
     
    serviceId = client.get('/vps/{}/serviceInfos'.format(myVps))['serviceId']

    choices = client.get('/service/{}/renew'.format(serviceId))
    checkStrategy(choices, serviceId)

    order = client.post('/service/{}/renew'.format(serviceId),
        dryRun=False,
        duration=expectedRenewPeriod,
        services=[
           serviceId
       ]
   )

    client.post('/me/order/{}/payWithRegisteredPaymentMean'.format(order['orderId']),
        paymentMean='paypal',
        paymentMeanId=1234
    )
if __name__ == '__main__':
 
    main()
 

Sprawdź również

Dołącz do grona naszych użytkowników.

Czy ta strona była pomocna?