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

  • Agent administracyjny

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

Uwaga

Nowe doświadczenia 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 doświadczeń 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. Najpierw użyj polecenia GET, aby uzyskać kwalifikujące się przejścia i dostępne do uaktualnienia SKU. Następnie POST transition w celu wykonania przejścia.

Uzyskaj uprawnienia do przejścia

Zwraca listę możliwych 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 jak opisano 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 Partner Center, wybierając obszar roboczy Klienci, następnie klienta z listy, a potem pozycję Konto. Na stronie Konta klienta poszukaj identyfikatora Microsoft ID w sekcji Informacje o koncie klienta. Identyfikator Microsoft jest taki sam jak identyfikator klienta (customer-tenant-id).

  • Identyfikator subskrypcji początkowej.

Role w 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 wersji dziedzicznej i NCE, GDAP jest wymagany tylko dla wersji dziedzicznej.

Żądanie REST

Składnia żądania

Metoda 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ć kwalifikowane przejścia.

Nazwisko Rodzaj Wymagane opis
identyfikator dzierżawy klienta GUID Y Identyfikator GUID odpowiadający dzierżawcy klienta.
identyfikator subskrypcji guid Y Początkowej subskrypcji odpowiadający identyfikator GUID.
typ kwalifikowalności 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 Partner Center REST headers.

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: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

Odpowiedź REST

Jeśli ta metoda zakończy się powodzeniem, zwraca listę dostępnych 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 jest udany
Typ przejścia nie jest zgodny — wymagane jest mapowanie subskrypcji usługi AzureAD. Błąd LegacyCannotConvertSubscriptionId podczas wywoływania funkcji GetSubscriptionUpgradeConflicts
Typ przejścia nie jest zgodny — istnieją subskrypcje konfliktowe dla przeniesienia licencji. Jeśli jakakolwiek usługa Microsoft Entra ma identyfikatory subskrypcji z innej subskrypcji, dodaj ją do listy konfliktów (w tym zakupy dokonane przy użyciu starszego lub nowszego trybu zakupu).

Błędy kwalifikacji do 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 kwalifikowalności jest określony jako Zaplanowane. Możesz przejść tylko do istniejącej subskrypcji z natychmiastowym przejściem (nazywanym również "środokresowym"), a nie z zaplanowaną zmianą.

Opis błędu Kod błędu
Subskrypcja nie jest aktywna. SubskrypcjaNieaktywna = 1
Subskrypcja jest w okresie, w którym można ją anulować. SubscriptionInCancellationWindow = 2
Czas trwania okresu subskrypcji jest krótszy niż czas trwania subskrypcji źródłowej. Czas trwania subskrypcji krótszy niż źródłowy czas trwania = 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: aaaa0000-bb11-2222-33cc-444444dddddd
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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
          "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": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
          "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"
  }
}

Okres po zmianie

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

Wymagania wstępne

  • Dane uwierzytelniające, zgodnie z opisem w sekcji autoryzacja 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 Partnerów, wybierając obszar roboczy Klienci, następnie wybierając klienta z listy klientów, a potem pozycję Konto. Na stronie Konta klienta poszukaj identyfikatora Microsoft w 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 na czas przejścia)
  • Narzędzie do zapisu katalogów (przejście połączone z przeniesieniem licencji)

Uwaga

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

Żądanie REST

Składnia żądania

Metoda Żądanie URI
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 Typ Wymagane opis
identyfikator dzierżawy klienta guid Y Identyfikator GUID odpowiadający dzierżawcy 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ść Typ Wymagane opis
zElementuKataloguId string Nie Element wykazu, z którego przechodzisz.
IdentyfikatorSubskrypcjiPochodzenia string Nie Identyfikator subskrypcji, z której przechodzisz.
toCatalogItemId (identyfikator elementu katalogu) string Tak Element wykazu, do którego przechodzisz.
toSubscriptionId ciąg znaków Nie Identyfikator subskrypcji, do której przechodzisz.
ilość liczba całkowita Tak Liczba licencji do przeniesienia.
okres trwania ciąg znaków Nie Określanie terminu trwania subskrypcji.
billingCycle string Nie Określanie cyklu rozliczeniowego subskrypcji.
typPrzejścia 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: aaaa0000-bb11-2222-33cc-444444dddddd
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 odpowiedzi: sukcesu i błędów

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: aaaa0000-bb11-2222-33cc-444444dddddd
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" 
    }
}