Schemalägga ändringar för en ny handelsprenumeration med hjälp av Partner Center-API:er

gäller för: Partnercenter

Den här artikeln beskriver hur du kan använda Partner Center-API:et för att schemalägga ändringar för en ny handelsprenumeration, som endast sker vid förnyelse. Det här API:et stöder nya licensbaserade handelsprenumerationer och programvaruprenumerationer.

Anmärkning

De nya handelsupplevelserna för licensbaserade tjänster innehåller många nya funktioner och är tillgängliga för alla molnlösningsleverantörer (CSP:er). För mer information, se översikten över nya handelsupplevelser.

Genom att skapa schemalagda ändringar kan du ändra din prenumeration automatiskt när nästa förnyelse sker. Genom att schemalägga ändringar kan du välja att öka eller minska antalet licenser, ändra faktureringsperioden och frekvensen och till och med välja att uppgradera SKU:n. Genom att schemalägga ändringar kan du göra ändringar i din prenumeration vid förnyelse, i stället för omedelbart under den aktuella perioden.

Viktigt!

Om du gör en (omedelbar) ändring efter halva tiden före förnyelsedatumet tas alla schemalagda ändringar som tidigare var schemalagda att ske vid förnyelsen bort.

Förutsättningar

  • Autentiseringsuppgifter enligt beskrivningen i Partner Center-autentisering. Det här scenariot stöder autentisering med både fristående app- och App+User-autentiseringsuppgifter.

  • Ett kund-ID (customer-tenant-id). Om du inte känner till kundens ID kan du söka efter det i Partner Center genom att välja arbetsytan Kunder, sedan kunden från kundlistan och sedan Konto. På kundens kontosida letar du efter Microsoft-ID i avsnittet Kundkontoinformation. Microsoft-ID är samma som kundens ID (customer-tenant-id).

  • Ett prenumerations-ID.

  • Automatisk förnyelse är aktiverat för prenumerationen.

Partnercenter-metod

Så här schemalägger du ändringar för en prenumeration i Partnercenter:

  1. Välj en kund.

  2. Välj den prenumeration som du vill schemalägga ändringar för.

  3. Aktivera automatisk förnyelse.

  4. Välj Hantera förnyelse.

  5. Gör ändringar i prenumerationen så att de genomförs vid förnyelse.

  6. Välj Okej för att stänga sidopanelen.

  7. välj Skicka för att spara ändringarna.

Anmärkning

Förnyelser bearbetas efter den sista dagen i en termin, med start kl. 12:00 UTC följande dag. Förnyelser bearbetas i en kö och kan ta upp till 24 timmar att behandla.

C#

Så här schemalägger du ändringar för en kunds prenumeration:

  1. Hämta prenumerationen med ID.
  2. Hämta övergångsberättigande för behörighetstypen för schemalagd övergång.
  3. Skapa ett ScheduledNextTermInstructions-objekt och ange det till prenumerationens egenskap.
  4. Anropa metoden Patch() för att uppdatera prenumerationen med de schemalagda ändringarna.
var selectedSubscription = subscriptionOperations.Get();
selectedSubscription.ScheduledNextTermInstructions = new ScheduledNextTermInstructions
{
    Product = new ProductTerm
    {
        ProductId = changeToProductId,
        SkuId = changeToSkuId,
        AvailabilityId = changeToAvailabilityId,
        BillingCycle = changeToBillingCycle,
        TermDuration = changeToTermDuration,
    },
    Quantity = changeToQuantity,
    customTermEndDate = DateTime,
};
var updatedSubscription = subscriptionOperations.Patch(selectedSubscription);

Så här schemalägger du ändringar för en kunds prenumeration, där den schemalagda ändringen som önskas är till en annan produkt:

  1. Hämta prenumerationen med ID.
  2. Hämta övergångsberättigande för behörighetstypen för schemalagd övergång.
  3. Anropa metoden Patch() för att uppdatera prenumerationen med de schemalagda ändringarna.

REST-begäran

Begärningssyntax

Metod Begäran om URI
Patch {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1

URI-parametrar

I den här tabellen visas de frågeparametrar som krävs för att anropa API:et.

Namn Typ Krävs Beskrivning
kundtenant-ID guide Y En GUID-identifierare som motsvarar kunden.
prenumerations-ID guide Y ett GUID som motsvarar en prenumeration.

Förfrågningsrubriker

Mer information finns i REST-huvuden för Partner Center.

begäranens innehåll

En fullständig Subscription-resurs krävs i begärans brödtext, där egenskapen scheduledNextTermInstructions är definierad. Om du vill schemalägga ändringar för din prenumeration kontrollerar du att egenskapen AutoRenewEnabled är inställd på true.

För tillgänglighets-ID:n för erbjudanden som har upphört att säljas med konverteringar (EndofSaleWithConversions):

  1. GetTransitionEligibility för att returnera CatalogItemID.

    a. Se till att ange behörighetstypen Schemalagd, annars används Omedelbar som standard.

  2. Använd CatalogItemID för att sedan extrahera availabilityID.

Om du använder GET Availabilities för att fastställa tillgängligheten för de schemalagda NextTerm-instruktionerna och om alla villkor är EOS-tillstånd får du en tom lista. Det bästa sättet att fastställa giltiga sökvägar är att anropa API:et GetTransitionEligibilty för att returnera giltiga alternativ.

Fält Typ Krävs Beskrivning
scheduledNextTermInstructions objekt Y Definierar instruktionerna för nästa period för prenumerationen. Egenskapen innehåller product objektet och quantity fältet.

Använda scheduledActions för att ange instruktioner för nästa termin (schemalagda ändringar)

Utökade tjänstvillkor introducerar ett nytt sätt att ange instruktioner för slutperioden. Den nya konstruktionen scheduledActions ger partnerna ett enda sätt att definiera uppdateringar för nästa avtalsperiod, inklusive uppsägning, förnyelse till förlängda tjänsteperioder eller förnyelse till andra mål vid avtalsperiodens slut. Partner kan ange instruktionerna scheduledActions RenewToNewTerm i stället för föregående scheduledNextTermInstructions. Mer information om hur du använder scheduledActions för att ange instruktioner för nästa term finns i dokumentationen för den utökade serviceperioden.

Partner som använder scheduledActions bör undvika att även skicka scheduledNextTermInstructions när du gör uppdateringar för prenumerationer berättigade till utökade tjänstvillkor. Partner som väljer att skicka med båda bör inse att endast scheduledActions beaktas. Partner kan fortsätta att endast skicka scheduledNextTermInstructions för att ange instruktioner för nästa termin.

Viktigt!

Undvik att skicka instruktioner för nästa period både i scheduledActions och i nextTermInstructions. Använd det ena eller det andra. Om båda skickas används instruktionerna för scheduledActions som standard.

Begäran med schemalagda åtgärder

{
  "autoRenewEnabled": true,
  "scheduledActions": [
    {
      "scheduledType": "TermEnd",
      "actionType": "RenewToNewTerm",
      "instructions": {
        "product": {
          "productId": "CFQ7TTC0LHXH",
          "skuId": "0001",
          "availabilityId": "CFQ7TTC0LHXH",
          "billingCycle": "annual",
          "termDuration": "P1Y",
          "promotionId": "39NFJQT20KJ2:0001:39NFJQT1Q5KK"
        },
        "quantity": 25,
        "customTermEndDate": "2027-11-31T23:59:59.000Z"
      }
    }
  ]
}

Svar med schemalagda åtgärder

{
  "autoRenewEnabled": true,
  "scheduledNextTermInstructions" : {
     "product": {
        "productId": "CFQ7TTC0LHXH",
        "skuId": "0001",
        "availabilityId": "CFQ7TTC0LHXH",
        "billingCycle": "annual",
        "termDuration": "P1Y",
        "promotionId": "39NFJQT20KJ2:0001:39NFJQT1Q5KK"
      },
      "quantity": 25,
      "customTermEndDate": "2027-11-31T23:59:59.000Z"
  },
  "scheduledActions":   "scheduledActions": [
    {
      "scheduledType": "TermEnd",
      "actionType": "RenewToNewTerm",
      "instructions": {
        "product": {
          "productId": "CFQ7TTC0LHXH",
          "skuId": "0001",
          "availabilityId": "CFQ7TTC0LHXH",
          "billingCycle": "annual",
          "termDuration": "P1Y",
          "promotionId": "39NFJQT20KJ2:0001:39NFJQT1Q5KK"
        },
        "quantity": 25,
        "customTermEndDate": "2027-11-31T23:59:59.000Z"
      }
    }
  ]
}

Använd scheduledActions för att ange övergångar vid årsdagen

Vissa utvalda treåriga SKU:er med Teams kan schemaläggas för överföring på avtalsperiodens årsdag.

Begäran med schemalagda åtgärder

{ 
    "id": "c10138d2-083b-4330-cf0d-6565dfaf22be", 
    "offerId": "CFQ7TTC0ZSXT:0001:CFQ7TTC0K85Z", 
    … 
    "scheduledActions": [ 
        { 
            "scheduleType": "CustomDate", // currently supported - EndOfTerm
            "actionType": "Transition", // currently supported - RenewToNewTerm, RenewToExtendedServiceTerm, Cancel 
            "effectiveDate": "2026-08-01", 
            "instructions": { 
                "product": { 
                    "productId": "CFQ7TTC0ZSXT", 
                    "skuId": "0001", 
                    "availabilityId": "CFQ7TTC0K8B0", 
                    "billingCycle": "monthly", 
                    "termDuration": "P1M" 
                }, 
            } 
        } 
    ] 
} 

Begäran med hjälp av schemalagda instruktioner för nästa termin

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<subscription-id> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
If-Match: <etag>
Content-Type: application/json
Content-Length: 1029
Expect: 100-continue
Connection: Keep-Alive

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "customTermEndDate": "2019-01-09T00:21:45.9263727",
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "active",
    "autoRenewEnabled": true,
    "scheduledNextTermInstructions": { 
      "product": { 
         "productId":  "DG7GMGF0DVSV", 
         "skuId":  "000P", 
         "availabilityId":  "DG7GMGF0F3Q9", 
         "billingCycle":  "Annual", 
         "termDuration":  "P3Y",
         "promotionId": "39NFJQT1PFPJ:000H:39NFJQT1Q5DK"
        }, 
      "quantity":  1 
      "customTermEndDate" : "2019-01-09T00:21:45.9263727",
     },  // original value = null 
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}

REST-svar

Om begäran lyckas returnerar den här metoden de uppdaterade egenskaperna för prenumerationsresursen i svarstexten.

Svarsframgång och felkoder

Varje svar levereras med en HTTP-statuskod som anger om det lyckades eller misslyckades och annan felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i Felkoder.

Svar med schemalagda instruktioner för nästa termin

HTTP/1.1 200 OK
Content-Length: 1322
Content-Type: application/json; charset=utf-8
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "customTermEndDate": "2019-01-09T00:21:45.9263727",
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "active",
    "autoRenewEnabled": true,
    "scheduledNextTermInstructions": { 
      "product": { 
         "productId":  "DG7GMGF0DVSV", 
         "skuId":  "000P", 
         "availabilityId":  "DG7GMGF0F3Q9", 
         "billingCycle":  "Annual", 
         "termDuration":  "P3Y",
         "promotionId": "39NFJQT1PFPJ:000H:39NFJQT1Q5DK"
        }, 
      "quantity":  1 
      "customTermEndDate": "2019-01-09T00:21:45.9263727",
     },  // original value = null 
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}