Udostępnij za pośrednictwem


Przeniesienie nowej subskrypcji handlowej

Dotyczy: Centrum partnerskie | Centrum partnerskie obsługiwane przez firmę 21Vianet | Centrum partnerskie dla chmury firmy Microsoft dla instytucji rządowych USA

Odpowiednie role

  • Administrator globalny
  • Agent administracyjny

Te metody obsługują zarówno tradycyjne, jak i nowe subskrypcje źródłowe handlu.

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.

Służy do uaktualniania nowej subskrypcji handlowej klienta do subskrypcji docelowej lub konwertowania wersji próbnej usługi NCE na płatną subskrypcję. Aby można było przenieść subskrypcję, należy wykonać dwa żądania interfejsu API. Pierwsze kwalifikujące się przejścia GET w celu uzyskania jednostek SKU dostępnych do uaktualnienia. Następnie przejście POST w celu wykonania przejścia.

Uzyskiwanie uprawnień do przejścia

Zwraca listę kwalifikujących się przejść dla danego klienta, subskrypcji i żądanego typu. Zwraca również uprawnienia do uaktualnienia subskrypcji docelowej. Uprawnienia do przejścia mogą obejmować oferty, które znajdują się w stanie EndofSaleWithConversions.

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 początkowej.

Role GDAP

Będziesz potrzebować co najmniej jednej z następujących ról GDAP:

  • Czytelnik katalogów
  • Czytelnik globalny

Uwaga

Chociaż ten interfejs API jest dostępny dla starszej wersji i NCE, GDAP jest wymagany tylko w przypadku starszej wersji.

Żądanie REST

Składnia żądania

Method Identyfikator URI żądania
GET {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType={immediate, scheduled} HTTP/1.1

Parametr identyfikatora URI

Użyj następujących parametrów zapytania, aby zwrócić kwalifikujące się przejścia.

Nazwisko Type Wymagania opis
identyfikator dzierżawy klienta guid Y Identyfikator GUID odpowiadający dzierżawie klienta.
identyfikator subskrypcji guid Y Identyfikator GUID odpowiadający początkowej subskrypcji.
kwalifikowalnościType string N Opisuje, kiedy ma zostać wykonane przejście; może być natychmiastowe lub zaplanowane. Wartość domyślna to Immediate.

Nagłówki żądań

Aby uzyskać więcej informacji, zobacz Nagłówki REST Centrum partnerskiego.

Treść żądania

Brak

Przykład żądania

GET https://api.partnercenter.microsoft.com/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitionEligibilities?eligibilityType=immediate HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
X-Locale: en-US

Odpowiedź REST

Jeśli ta metoda powiedzie się, zwraca listę kwalifikujących się przejść dla danej subskrypcji w treści odpowiedzi.

Kody powodzenia i błędów odpowiedzi

Każda odpowiedź zawiera kod stanu HTTP, który wskazuje powodzenie lub niepowodzenie i więcej informacji 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.

Błędy uprawnień

Opisy błędów i znaczenie.

Opis błędu Znaczenie
Nie można przenieść subskrypcji — subskrypcja źródłowa nie jest aktywna. Oryginalny stan podrzędny nie jest aktywny
Nie można przenieść subskrypcji — subskrypcja źródłowa nie została jeszcze aprowizowana. Oryginalny sub FulfillmentState nie powiodło się
Typ przejścia nie jest zgodny — wymagane jest mapowanie subskrypcji usługi AzureAD. Błąd LegacyCannotConvertSubscriptionId podczas wywoływania metody GetSubscriptionUpgradeConflicts
Typ przejścia nie jest zgodny — istnieją subskrypcje powodujące konflikt dla przeniesienia licencji. Jeśli dowolna usługa Microsoft Entra ma identyfikatory subskrypcji z innej subskrypcji, dodaj ją do listy konfliktów (łącznie z zakupami wykonanymi przy użyciu starszego lub nowoczesnego przepływu zakupów)

Błędy uprawnień subskrypcji

Jeśli subskrypcja docelowa nie kwalifikuje się do uaktualnienia, zostanie zwrócona jedna z następujących przyczyn.

Puste listy zostaną zwrócone, jeśli subskrypcja źródłowa jest wersją próbną lub jeśli typ uprawnień jest określony jako Zaplanowane. Możesz przejść tylko do istniejącej subskrypcji z bezpośrednim przejściem (nazywanym również "midterm"), a nie zaplanowaną zmianą.

Opis błędu Kod błędu
Subskrypcja nie jest aktywna. SubscriptionNotActive = 1
Subskrypcja znajduje się w oknie anulowania. SubscriptionInCancellationWindow = 2
Czas trwania okresu subskrypcji jest krótszy niż czas trwania subskrypcji źródłowej. SubscriptionTermDurationShorterThanSourceTermDuration = 3
Data zakończenia okresu subskrypcji przypada przed datą zakończenia okresu subskrypcji źródłowej. Data zakończenia okresu subskrypcji przypada przed datą zakończenia okresu subskrypcji źródłowej. = 4

Przykład odpowiedzi

HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{
  "totalCount": 2,
  "items": [
    {
      "operationId": "1caf8ec7-62cc-4ab5-b35d-572d2a62974c",
      "catalogItemId": "CFQ7TTC0KZCR:0001:CFQ7TTC0K71H",
      "title": "Microsoft 365 E5 Test Sku Title",
      "description": "Microsoft 365 E5 Test Sku Description",
      "quantity": 1,
      "subscriptionEligibilities": [
        {
          "isEligible": false,
          "subscriptionId": "92301b7d-7598-4938-d6f2-d31e080e9da6",
          "subscriptionFriendlyName": "Microsoft 365 Business Premium",
          "subscriptionTermDuration": "P1M",
          "subscriptionBillingCycle": "monthly",
          "errors": [
            {
              "code": 3,
              "description": "The subscription's term duration is shorter than the source subscription's term duration."
            }
          ]
        },
        {
          "isEligible": true,
          "subscriptionId": "151467a1-4246-4a00-da7b-3405463d9b78",
          "subscriptionFriendlyName": "Microsoft 365 Business Premium",
          "subscriptionTermDuration": "P1Y",
          "subscriptionBillingCycle": "monthly",
          "errors": []
        }
      ],
      "eligibilities": [
        {
          "isEligible": true,
          "transitionType": "transition_only",
          "errors": []
        },
        {
          "isEligible": false,
          "transitionType": "transition_with_license_transfer",
          "errors": [
            {
              "code": 3,
              "description": "Subscription cannot be transitioned because there are conflicting services."
            }
          ]
        }
      ],
      "attributes": {
        "objectType": "TransitionEligibility"
      }
    },
    {
      "operationId": "1caf8ec7-62cc-4ab5-b35d-572d2a62974c",
      "catalogItemId": "CFQ7TTC0L4M3:0001:CFQ7TTC0K78T",
      "title": "Business Premium Test Sku Title",
      "description": "Business Premium Test Sku Description",
      "quantity": 1,
      "eligibilities": [
        {
          "isEligible": false,
          "transitionType": "transition_with_license_transfer",
          "errors": [
            {
              "code": 3,
              "description": "Subscription cannot be transitioned because there are conflicting services."
            }
          ]
        }
      ],
      "attributes": {
        "objectType": "TransitionEligibility"
      }
    }
  ],
  "attributes": {
    "objectType": "Collection"
  }
}

Przejście po przejściu

Publikuje żądanie przeniesienia dla danego klienta i subskrypcji. Zwraca przejście ze stanem początkowym.

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 początkowej.

Role GDAP

Będziesz potrzebować co najmniej jednej z następujących ról GDAP:

  • Czytelnik katalogu lub Czytelnik globalny (tylko przejście)
  • Składnik zapisywania katalogów (przejście z transferem licencji)

Uwaga

Chociaż ten interfejs API jest dostępny dla starszej wersji i NCE, GDAP jest wymagany tylko w przypadku starszej wersji.

Żądanie REST

Składnia żądania

Method Identyfikator URI żądania
POST {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/transitions HTTP/1.1

Parametr identyfikatora URI

Aby wykonać przejście, użyj następujących parametrów zapytania.

Nazwisko Type Wymagania opis
identyfikator dzierżawy klienta guid Y Identyfikator GUID odpowiadający dzierżawie klienta.
identyfikator subskrypcji guid Y Identyfikator GUID odpowiadający początkowej subskrypcji.

Nagłówki żądań

Aby uzyskać więcej informacji, zobacz Nagłówki REST Centrum partnerskiego.

Treść żądania

W tej tabeli opisano właściwości Przejścia w treści żądania.

Właściwość Type Wymagania opis
fromCatalogItemId string Nie Element wykazu, z którego przechodzisz.
fromSubscriptionId string Nie Identyfikator subskrypcji, z której przechodzisz.
toCatalogItemId string Tak Element wykazu, do którego przechodzisz.
toSubscriptionId string Nie Identyfikator subskrypcji, do której przechodzisz.
ilość integer Tak Liczba licencji do przejścia.
termDuration string Nie Określanie terminu trwania subskrypcji.
billingCycle string Nie Określanie cyklu rozliczeniowego subskrypcji.
transitionType string Tak Typ przejścia. Możliwe wartości — transition_only, transition_with_license_transfer.

Przykład żądania

POST https://api.partnercenter.microsoft.com/v1/customers/{customerId}/subscriptions/{subscriptionId}/transitions HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
X-Locale: en-US

{
    "fromCatalogItemId": "CFQ7TTC0LF8Q:0001:CFQ7TTC0K39X",
    "fromSubscriptionId": "e487e8dc-421e-4275-cb42-3c1c8daccf70",
    "toCatalogItemId": "CFQ7TTC0LF8R:0001:CFQ7TTC0KCSV",
    "toSubscriptionId": "0af52192-4a2a-4364-d25b-c8ecab3a5697",
    "quantity": 2,
    "termDuration": "P1M",
    "billingCycle": "Monthly",
    "transitionType": "transition_only"
}

Odpowiedź REST

W przypadku powodzenia ta metoda zwraca zasób Transition ze stanem początkowym.

Kody powodzenia i błędów odpowiedzi

Każda odpowiedź zawiera kod stanu HTTP, który wskazuje powodzenie lub niepowodzenie i więcej informacji 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: 138
Content-Type: application/json
MS-CorrelationId: 81b08ffe-4cf8-49cd-82db-5c2fb0a8e132
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 26 Feb 2021 20:42:26 GMT

{
    "fromCatalogItemId": "CFQ7TTC0LF8Q:0001:CFQ7TTC0K39X",
    "fromSubscriptionId": "e487e8dc-421e-4275-cb42-3c1c8daccf70",
    "toCatalogItemId": "CFQ7TTC0LF8R:0001:CFQ7TTC0KCSV",
    "toSubscriptionId": "0af52192-4a2a-4364-d25b-c8ecab3a5697",
    "quantity": 2,
    "termDuration": "P1M",
    "billingCycle": "Monthly",
    "transitionType": "transition_only"
    "Events": [
        {
            "name": "Conversion",
            "status": "Started ",
            "timestamp": "2021-01-08T18:01:14.7488618Z",
            "attributes":
            {
                "objectType": "TransitionEvent"
            }
        }
    ],
    "attributes":
    {
        "objectType": "Transition" 
    }
}