Delen via


Wijzigingen plannen voor een nieuw commerce-abonnement met behulp van Partner center-API's

is van toepassing op: Partnercentrum

In dit artikel wordt beschreven hoe u de Partner Center API kunt gebruiken om wijzigingen te plannen voor een nieuw Commerce--abonnement, die alleen plaatsvinden bij verlenging. Deze API biedt ondersteuning voor nieuwe commerciële abonnementen op basis van licenties en softwareabonnementen.

Notitie

De nieuwe commerce-ervaringen voor services op basis van licenties omvatten veel nieuwe mogelijkheden en zijn beschikbaar voor alle CSP's (Cloud Solution Provider). Zie overzicht van nieuwe commerce-ervaringenvoor meer informatie.

Als u geplande wijzigingen maakt, kunt u uw abonnement automatisch wijzigen wanneer de volgende verlenging plaatsvindt. Door wijzigingen te plannen, kunt u ervoor kiezen om het aantal licenties te verhogen of te verlagen, de factureringstermijn en -frequentie te wijzigen en zelfs de SKU te upgraden. Met het plannen van wijzigingen kunt u wijzigingen aanbrengen in uw abonnement bij verlenging, in plaats van onmiddellijk tijdens de huidige termijn.

Belangrijk

Als u een tussentijdse (onmiddellijke) wijziging aanbrengt vóór de verlengingsdatum, worden alle geplande wijzigingen die eerder zijn gepland bij verlenging verwijderd.

Voorwaarden

  • Referenties zoals beschreven in Partnercentrum-authenticatie. Dit scenario ondersteunt verificatie met zowel zelfstandige app- als app+gebruikersreferenties.

  • Een klant-id (customer-tenant-id). Als u de klant-id niet weet, kunt u deze opzoeken in Partnercentrum door de werkruimte Klanten te selecteren, vervolgens de klant in de lijst met klanten en vervolgens Account. Zoek op de pagina Account van de klant naar de Microsoft-id in de sectie Klantaccountgegevens. De Microsoft-id is hetzelfde als de klant-id (customer-tenant-id).

  • Een abonnements-id.

  • Automatisch verlengen is ingeschakeld voor het abonnement.

Partnercentrummethode

Ga als volgende te werk om wijzigingen voor een abonnement in partnercentrum te plannen:

  1. Selecteer een klant.

  2. Selecteer het abonnement waarvoor u wijzigingen wilt plannen.

  3. Schakel automatisch verlengen aan.

  4. Selecteer Verlengingbeheren.

  5. Breng wijzigingen aan in het abonnement dat moet worden uitgevoerd bij verlenging.

  6. Selecteer Oke om het zijpaneel te sluiten.

  7. selecteer verzenden om de wijzigingen op te slaan.

Notitie

Verlengingen worden verwerkt na de laatste dag van een termijn, beginnend om 12:00 uur UTC de volgende dag. Vernieuwingen worden verwerkt in een wachtrij en het kan tot 24 uur duren voordat ze worden verwerkt.

C#

Wijzigingen plannen voor het abonnement van een klant:

  1. Het abonnement ophalen via id.
  2. Overgangsgeschiktheid verkrijgen voor het type geplande overgangsgeschiktheid.
  3. Maak een ScheduledNextTermInstructions object en stel dit in op de eigenschap van het abonnement.
  4. Roep de Patch() methode aan om het abonnement bij te werken met de geplande wijzigingen.
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);

Als u wijzigingen wilt plannen voor het abonnement van een klant, waarbij de gewenste geplande wijziging is ingesteld op een ander product:

  1. Het abonnement ophalen via ID.
  2. Overgangsgeschiktheid verkrijgen voor het geplande type overgangsgeschiktheid.
  3. Roep de Patch() methode aan om het abonnement bij te werken met de geplande wijzigingen.

REST-aanvraag

Aanvraagsyntaxis

Methode Aanvraag URI
PATCH {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1

URI-parameter

Deze tabel bevat de vereiste queryparameters voor het aanroepen van de API.

Naam Soort Vereist Beschrijving
klant-tenant-id guid Y Een GUID die overeenkomt met de klant.
abonnements-id guid Y Een GUID die overeenkomt met het abonnement.

Aanvraagheaders

Zie Partnercentrum REST-headersvoor meer informatie.

Aanvraagtekst

Een volledige abonnementresource is vereist in de aanvraagtekst, waarbij de eigenschap scheduledNextTermInstructions is gedefinieerd. Als u wijzigingen voor uw abonnement wilt plannen, moet u ervoor zorgen dat de eigenschap AutoRenewEnabled is ingesteld op true.

Voor beschikbaarheids-id aan het einde van de verkoop met conversies (EndofSaleWithConversions) aanbiedingen:

  1. GetTransitionEligibility om CatalogItemID terug te geven.

    een. Zorg ervoor dat u het type Geplande geschiktheid instelt, anders is de standaardwaarde onmiddellijk.

  2. Gebruik CatalogItemID om vervolgens availabilityID te extraheren.

Notitie

Als u 'GET Availabilities' gebruikt om de beschikbaarheid voor de 'scheduledNextTerm Instructions' te bepalen en als alle termijnen de EOS-status hebben, ontvangt u een lege lijst. De beste manier om geldige paden te bepalen, is door de GetTransitionEligibilty-API aan te roepen om de geldige opties te retourneren.

Veld Type Vereist Beschrijving
scheduledNextTermInstructions object Y Hiermee definieert u de volgende termijninstructies voor het abonnement. De eigenschap bevat het product-object en het veld quantity.

Aanvraagvoorbeeld

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-antwoord

Als de aanvraag is geslaagd, retourneert deze methode de bijgewerkte Subscription resource-eigenschappen in de hoofdtekst van het antwoord.

Geslaagde antwoorden en foutcodes

Elk antwoord wordt geleverd met een HTTP-statuscode die aangeeft dat deze is geslaagd of mislukt, en andere informatie over foutopsporing. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en andere parameters te lezen. Zie Foutcodesvoor de volledige lijst.

Voorbeeld van antwoord

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"},
}