Planowanie zmian dla nowej subskrypcji handlowej przy użyciu interfejsów API Centrum partnerskiego
Dotyczy: Centrum partnerskie
W tym artykule opisano, jak za pomocą interfejsu API Centrum partnerskiego zaplanować zmiany dla nowej subskrypcji handlowej, które mają miejsce tylko podczas odnawiania. Ten interfejs API obsługuje nowe licencjonowane subskrypcje handlowe i subskrypcje oprogramowania.
Uwaga
Nowe środowiska handlowe dla usług opartych na licencjach obejmują wiele nowych funkcji i są dostępne dla wszystkich Dostawca 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żne
Jeśli przed datą odnowienia wprowadzisz zmianę w połowie okresu (natychmiastowego), zostaną usunięte wszystkie zaplanowane zmiany, które zostały wcześniej zaplanowane.
Wymagania wstępne
Poświadczenia zgodnie z opisem w temacie Uwierzytelnianie w Centrum partnerskim. Ten scenariusz obsługuje uwierzytelnianie zarówno przy użyciu autonomicznych poświadczeń aplikacji, jak i 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 klienta z listy klienta, a następnie pozycję Konto. Na stronie Konto klienta poszukaj identyfikatora Microsoft w sekcji Informacje o koncie klienta. Identyfikator 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 pozycję Zarządzaj odnawianiem.
Wprowadź modyfikacje subskrypcji w celu odnowienia.
Wybierz pozycję Ok, aby zamknąć panel boczny.
wybierz pozycję Prześlij , aby zapisać zmiany.
Uwaga
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 uprawnienia do przejścia dla typu uprawnień do zaplanowanego 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ę według identyfikatora.
- Uzyskaj uprawnienia do przejścia dla typu uprawnień do zaplanowanego przejścia.
- Wywołaj metodę Patch(), aby zaktualizować subskrypcję za pomocą zaplanowanych zmian.
Żądanie REST
Składnia żądania
Method | 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.
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
identyfikator dzierżawy klienta | guid | Y | Identyfikator GUID odpowiadający klientowi. |
identyfikator subskrypcji | guid | Y | Identyfikator GUID odpowiadający subskrypcji. |
Nagłówki żądań
Aby uzyskać więcej informacji, zobacz Nagłówki REST Centrum partnerskiego.
Treść żądania
Pełny zasób subskrypcji jest wymagany w treści żądania z zdefiniowaną właściwościąscheduledNextTermInstructions
. Aby zaplanować zmiany dla subskrypcji, upewnij się, że właściwość AutoRenewEnabled jest ustawiona na true.
W przypadku identyfikatora dostępności po zakończeniu sprzedaży z konwersjami (EndofSaleWithConversions) oferty:
GetTransitionEligibility w celu zwrócenia identyfikatora CatalogItemID.
a. Upewnij się, że ustawiono typ uprawnień Zaplanowany w przeciwnym razie wartość domyślna jest natychmiastowa.
Użyj identyfikatora CatalogItemID, aby wyodrębnić identyfikator dostępności.
Uwaga
Jeśli używasz funkcji GET Availabilities w celu określenia dostępności dla zaplanowanych instrukcjiDalejTerm i jeśli wszystkie terminy są stanem systemu EOS, otrzymasz pustą listę. Najlepszym sposobem określenia prawidłowych ścieżek jest wywołanie interfejsu API GetTransitionEligibilty w celu zwrócenia prawidłowych opcji.
Pole | Typ | Wymagania | opis |
---|---|---|---|
scheduledNextTermInstructions | object | Y | Definiuje instrukcje dotyczące następnego terminu dla subskrypcji. Właściwość zawiera product obiekt i quantity pole. |
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 Subskrypcja w treści odpowiedzi.
Kody powodzenia i błędów 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"},
}