Zmiana harmonogramu dla nowej subskrypcji komercyjnej przy użyciu interfejsów API Centrum Partnerskiego
Dotyczy: Centrum Partnerskiego
W tym artykule opisano, jak można użyć interfejsu API Centrum partnerskiego do zaplanowania zmian dla nowej subskrypcji handlowej , które nastąpią tylko podczas odnowienia. Ten interfejs API obsługuje subskrypcje oparte na nowych licencjach handlowych oraz subskrypcje oprogramowania.
Notatka
Nowe środowiska handlowe dla usług opartych na licencjach obejmują wiele nowych funkcji i są dostępne dla wszystkich dostawców rozwiązań w chmurze (CSP). Aby uzyskać więcej informacji, zobacz omówienie nowych środowisk handlowych.
Utworzenie zaplanowanych zmian umożliwia automatyczne modyfikowanie subskrypcji po następnym odnowieniu. Planując zmiany, możesz zwiększyć lub zmniejszyć liczbę licencji, zmodyfikować okres rozliczeniowy i częstotliwość, a nawet wybrać uaktualnienie jednostki SKU. Planowanie zmian umożliwia wprowadzanie modyfikacji subskrypcji podczas odnawiania, a nie natychmiast w trakcie bieżącego okresu.
Ważny
Jeśli przed datą odnowienia wprowadzisz natychmiastową zmianę w trakcie trwania umowy, wszystkie zmiany zaplanowane do wprowadzenia przy odnowieniu zostaną usunięte.
Warunki wstępne
Poświadczenia zgodnie z opisem w uwierzytelnianie w Centrum partnerskim. Ten scenariusz obsługuje uwierzytelnianie zarówno przy użyciu poświadczeń samodzielnej aplikacji, jak i poświadczeń aplikacji i użytkownika.
Identyfikator klienta (
customer-tenant-id
). Jeśli nie znasz identyfikatora klienta, możesz wyszukać go w centrum partnerskim , wybierając obszar roboczy Klienci, a następnie klient z listy klientów, a następnie konto. Na stronie konta klienta poszukaj identyfikatora Microsoft w sekcji Informacje o koncie klienta. Identyfikator Firmy Microsoft jest taki sam jak identyfikator klienta (customer-tenant-id
).Identyfikator subskrypcji.
Automatyczne odnawianie jest włączone w ramach subskrypcji.
Metoda Centrum partnerskiego
Aby zaplanować zmiany subskrypcji w Centrum partnerskim:
Wybierz subskrypcję, dla której chcesz zaplanować zmiany.
Włącz automatyczne odnawianie.
Wybierz opcję Zarządzaj odnawianiem.
Wprowadź modyfikacje subskrypcji w celu odnowienia.
Wybierz pozycję Okay, aby zamknąć panel boczny.
wybierz pozycję Prześlij, aby zapisać zmiany.
Notatka
Odnowienia są przetwarzane po ostatnim dniu okresu, począwszy od 12:00 czasu UTC następnego dnia. Odnowienia są przetwarzane w kolejce i przetwarzanie może potrwać do 24 godzin.
C#
Aby zaplanować zmiany dla subskrypcji klienta:
- Pobierz subskrypcję według identyfikatora.
- Uzyskaj kwalifikowalność do przejścia dla zaplanowanego typu kwalifikowalności do przejścia.
- Utwórz obiekt ScheduledNextTermInstructions i ustaw go na właściwość subskrypcji.
- Wywołaj metodę Patch(), aby zaktualizować subskrypcję za pomocą zaplanowanych zmian.
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);
Aby zaplanować zmiany dla subskrypcji klienta, w której żądana zmiana zaplanowana jest na inny produkt:
- Pobierz subskrypcję po identyfikatorze.
- Uzyskaj uprawnienia przejścia dla zaplanowanego typu uprawnień przejściowych.
- Wywołaj metodę Patch(), aby zaktualizować subskrypcję za pomocą zaplanowanych zmian.
Żądanie REST
Składnia żądania
Metoda | Identyfikator URI żądania |
---|---|
PATCH | {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1 |
Parametr identyfikatora URI
W tej tabeli wymieniono wymagane parametry zapytania do wywołania interfejsu API.
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
identyfikator-klienta-najemcy | guid | Y | Identyfikator GUID odpowiadający klientowi. |
identyfikator subskrypcji | guid | Y | Identyfikator GUID odpowiadający subskrypcji. |
Nagłówki żądań
Aby uzyskać więcej informacji, odwiedź sekcję Nagłówki REST w Centrum Partnerskim.
Treść żądania
W treści żądania wymagany jest pełny zasób subskrypcji z zdefiniowaną właściwością scheduledNextTermInstructions
. Aby zaplanować zmiany dla subskrypcji, upewnij się, że właściwość AutoRenewEnabled jest ustawiona na true.
Oferty z konwersjami, identyfikowane przez identyfikator dostępności po zakończeniu sprzedaży (EndofSaleWithConversions):
GetTransitionEligibility w celu zwrócenia identyfikatora CatalogItemID.
a. Upewnij się, że ustawiono typ uprawnień jako 'Zaplanowany', w przeciwnym razie wartością domyślną będzie 'Natychmiastowy'.
Użyj identyfikatora CatalogItemID, aby wyodrębnić identyfikator dostępności.
Notatka
Jeśli używasz funkcji GET Availabilities, aby ustalić dostępność dla zaplanowanych instrukcji scheduledNextTerm, i wszystkie terminy są w stanie EOS, otrzymasz pustą listę. Najlepszym sposobem określenia prawidłowych ścieżek jest wywołanie interfejsu API GetTransitionEligibility, aby zwrócić prawidłowe opcje.
Pole | Typ | Wymagane | Opis |
---|---|---|---|
scheduledNextTermInstructions | obiekt | Y | Definiuje instrukcje dotyczące następnego terminu dla subskrypcji. Właściwość zawiera obiekt product i pole quantity . |
Przykład żądania
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"},
}
Odpowiedź REST
Jeśli żądanie zakończy się pomyślnie, ta metoda zwraca zaktualizowane właściwości zasobu subskrypcji w treści odpowiedzi.
Kody sukcesu i błędu odpowiedzi
Każda odpowiedź zawiera kod stanu HTTP, który wskazuje powodzenie lub niepowodzenie oraz inne informacje o debugowaniu. Użyj narzędzia do śledzenia sieci, aby odczytać ten kod, typ błędu i inne parametry. Aby uzyskać pełną listę, zobacz Kody błędów.
Przykład odpowiedzi
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"},
}