Udostępnij za pośrednictwem


Nowy interfejs API oceniania dziennego użycia w handlu w wersji 2 (beta)

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

Te interfejsy API umożliwiają asynchronicznie naliczanie opłat za nowy handel i nienaliczone dane dziennego użycia.

Uwaga

Ten interfejs API będzie przestarzały. Zamiast tego użyj wersji ogólnie dostępnej. Aby uzyskać więcej informacji, zobacz następujące szczegóły.

Tego interfejsu API można używać tylko do naliczania dziennego użycia do 30 września 2024 r. Zapoznaj się ze szczegółami, aby wybrać odpowiednią wersję interfejsu API i zaplanować z wyprzedzeniem.

  • Przejdź do wersji 2 ogólnie dostępnej tak szybko, jak to możliwe. Do tego czasu użyj tego interfejsu API, aby pobrać dzienne elementy wiersza użycia dla nowych faktur handlowych dla okresów rozliczeniowych od września 2022 r.
  • Użyj tylko interfejsu API w wersji 2 ogólnie dostępnej od 1 października 2024 r., aby uzyskać dzienne elementy wiersza użycia dla nowych faktur handlowych dla okresów rozliczeniowych od września 2022 r.

Tego interfejsu API można używać tylko w przypadku nienaliczonego dziennego użycia do 30 września 2024 r. Zapoznaj się ze szczegółami, aby wybrać odpowiednią wersję interfejsu API i zaplanować z wyprzedzeniem.

  • Przejdź do wersji 2 ogólnie dostępnej tak szybko, jak to możliwe. Do tego czasu użyj tego interfejsu API, aby uzyskać nowe pozycje wierszy dziennego użycia niezbilonego dziennego użycia dla bieżących i poprzednich okresów rozliczeniowych.
  • Użyj tylko interfejsu API w wersji 2 (ogólna dostępność) od 1 października 2024 r., aby uzyskać nowe pozycje wiersza dziennego niezbilonego dziennego użycia dla bieżących i poprzednich okresów rozliczeniowych.

Aby uzyskać dostęp do nowych interfejsów API ga w wersji 2, zobacz ten link:

Rozliczane i nienaliczone dzienne interfejs API uzgodnień użycia w wersji 2 (GA)

Uwaga

Możesz pobrać codzienne niezbilone elementy wiersza użycia za pośrednictwem interfejsu API lub portalu Centrum partnerskiego. Udostępnienie danych może potrwać do 24 godzin. Jednak mogą wystąpić dalsze opóźnienia w zależności od lokalizacji i kiedy mierniki zgłaszają użycie.

Czasami może nie być widocznych najnowszych, niezaliczonych danych użycia do momentu dostarczenia rozliczanych danych użycia w poprzednim miesiącu. Jest to wykonywane w celu zapewnienia, że rozliczane dane użycia są dostarczane w uzgodnionym czasie. Po otrzymaniu rozliczanych danych użycia powinno być możliwe pobranie wszystkich zaktualizowanych, niezmierowanych danych użycia od początku miesiąca.

Ważne

Dane dziennego użycia nie obejmują opłat za te produkty:

  • Rezerwacja platformy Azure
  • Plan oszczędnościowy Azure
  • Office
  • Dynamics
  • Microsoft Power Apps
  • Oprogramowanie bezterminowe
  • Subskrypcja oprogramowania
  • Produkt SaaS firmy innej niż Microsoft

Przegląd interfejsu API

Asynchroniczny interfejs API to nowatorska metoda szybkiego uzyskiwania dostępu do danych rozliczeń i uzgodnień w zarządzanych fragmentach. Eliminuje to konieczność obsługi otwartego połączenia przez wiele godzin i pętli przez miliony transakcji iteracyjne.

Użyliśmy wzorców asynchronicznych żądań i żądań-odpowiedzi , aby zoptymalizować nasze interfejsy API fakturowania i uzgodnień w celu asynchronicznego dostarczania wyników. Odpowiedzi interfejsu API zapewnią token umożliwiający dostęp do danych uzgodnień ze wszystkimi atrybutami lub podzestawem.

Dane użycia można pobrać asynchronicznie przy użyciu trzech nowych kroków (punktów końcowych interfejsu API). Aby dowiedzieć się więcej, przeczytaj następujące informacje:

Punkt końcowy elementu wiersza użycia

Użyj tego interfejsu API, aby uzyskać dostęp do rozliczanych lub niezaliczonych elementów wiersza użycia. Zwróci on stan HTTP 202 i nagłówek lokalizacji z adresem URL, który należy sondować w regularnych odstępach czasu, dopóki nie otrzymasz stanu powodzenia z adresem URL manifestu.

Punkt końcowy stanu operacji

Dopóki nie otrzymasz stanu powodzenia, sonduj ten interfejs API w regularnych odstępach czasu. Jeśli żądane dane są niedostępne, odpowiedź interfejsu API będzie zawierać nagłówek Ponów próbę po zakończeniu wskazujący, jak długo należy czekać przed wysłaniem innego żądania.

Punkt końcowy manifestu

Ten punkt końcowy udostępnia folder magazynu, z którego można pobrać rzeczywiste dane rozliczeniowe. Odpowiedź dzieli pliki lub dzieli je na partycje, aby zoptymalizować przepływność i równoległość we/wy.

Diagramów sekwencji

Na poniższym diagramie przedstawiono kroki wymagane do pobrania danych uzgodnień.

Diagram przedstawiający kroki wymagane do pobrania danych uzgodnień.

Sekwencja akcji użytkownika

Wykonaj poniższe kroki, aby pobrać dane uzgodnień.

Krok 1. Przesyłanie żądania

Prześlij żądanie POST do punktu końcowego interfejsu API.

Pobieranie nierozliczonych elementów wiersza użycia

Pobierz nierozliczone elementy wiersza użycia dla bieżącego lub ostatniego miesiąca kalendarzowego.

Żądanie interfejsu API

POST https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/unbilledusage?fragment={fragment}&period={period}?currencyCode={currencyCode}

Parametry żądania

Nazwa/nazwisko In Wymagane Type Opis
fragment Query Fałsz String Wybierz pozycję "full", aby uzyskać pełną odpowiedź lub "basic" dla podzestawu atrybutów. Wartość domyślna to "full". Zobacz listę atrybutów w tym artykule.
Okres Query Prawda String Użyj wartości "current" lub "last", aby uzyskać użycie dla bieżącego lub ostatniego miesiąca kalendarzowego. Wartość "last" jest taka sama jak "previous" w istniejących interfejsach API w wersji 1.
currencyCode Query Prawda String Kod waluty rozliczeniowej partnera.

Przestarzałe parametry żądania

Nowsza wersja interfejsu API nie wymaga następujących parametrów identyfikatora URI:

Nazwa/nazwisko Opis
Provider Nie dotyczy. (Zwraca wszystkie użycie planu platformy Azure i jest równoważne "jednorazowym" istniejącym interfejsom API w wersji 1).
hasPartnerEarnedCredit Nie dotyczy. (zwraca wszystkie dane, niezależnie od pec).
Rozmiar Nie dotyczy.
Przesunięcie Nie dotyczy.
seekOperation Nie dotyczy.

Nagłówek żądania

Zobacz listę nagłówków żądań dla interfejsu API w tym artykule.

Treść żądania

Nie dotyczy.

Odpowiedź interfejsu API

HTTP/1.1 202 Accepted Operation-Location: https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/811bb8f0-8aca-4807-897c-c15ce50820d6

Interfejs API zwraca stan HTTP 202. Na podstawie żądania interfejs API może zwrócić inny stan standardowy.

Nazwa/nazwisko Opis
Zaakceptowano 202 Żądanie jest akceptowane. Wykonaj zapytanie względem adresu URL nagłówka lokalizacji operacji, aby uzyskać stan żądania.

Pobieranie rozliczanych elementów wiersza użycia

Pobierz rozliczane pozycje wierszy użycia dla zamkniętego okresu rozliczeniowego.

Żądanie interfejsu API

POST https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billedusage/invoices/{invoiceId}?fragment={fragment}

Parametry żądania

Nazwa/nazwisko In Wymagane Type Opis
invoiceId Ścieżka Prawda String Numer faktury w Centrum partnerskim.
Fragment Query Fałsz String Wybierz pozycję "full", aby uzyskać pełną odpowiedź lub "basic" dla podzestawu atrybutów. Wartość domyślna to "full". Zobacz listę atrybutów w tym artykule.

Przestarzałe parametry żądania

Nowsza wersja interfejsu API nie wymaga następujących parametrów identyfikatora URI:

Nazwa/nazwisko Opis
Provider Nie dotyczy. (Zwraca wszystkie użycie planu platformy Azure i jest równoważne "jednorazowym" istniejącym interfejsom API w wersji 1).
hasPartnerEarnedCredit Nie dotyczy. (zwraca wszystkie dane, niezależnie od pec).
Rozmiar Nie dotyczy.
Przesunięcie Nie dotyczy.
seekOperation Nie dotyczy.

Nagłówek żądania

Zobacz listę nagłówków żądań dla interfejsu API w tym artykule.

Treść żądania

Nie dotyczy.

Odpowiedź interfejsu API

HTTP/1.1 202 Accepted Operation-Location: https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4448-83b4-1e83ab1d4640

Interfejs API zwraca wartość "Zaakceptowano protokół HTTP 202". Na podstawie interfejsu API żądania może zwrócić inny stan standardowy.

Nazwa/nazwisko Opis
Zaakceptowano 202 Żądanie jest akceptowane. Sprawdź stan żądania, sondując adres URL nagłówka operation-location.

Krok 2. Sprawdzanie stanu żądania

Poczekaj na http 200 ze stanem terminalu zakończonym powodzeniem lub niepowodzeniem. Adres URL manifestu będzie mieć wartość "resourceLocation" w stanie powodzenia.

Uzyskiwanie stanu operacji

Pobiera stan żądania danych uzgodnień.

Żądanie interfejsu API

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4448-83b4-1e63ab1d3640

Parametry żądania

Nazwa/nazwisko In Wymagane Type Opis
operationId Ścieżka Prawda String Identyfikator operacji.

Nagłówek żądania

Zobacz listę nagłówków żądań dla interfejsu API w tym artykule.

Treść żądania

Nie dotyczy.

Stan odpowiedzi

Oprócz standardowego stanu HTTP w tym artykule interfejs API może zwrócić następujący stan HTTP:

Nazwa/nazwisko Opis
410 Zniknął Każde łącze operacji jest aktywne przez określoną ilość czasu kontrolowanego przez serwer. Po upływie czasu klient musi przesłać nowe żądanie.

Ładunek odpowiedzi

Ładunek odpowiedzi interfejsu API zwraca następujące atrybuty:

Nazwisko Opcjonalnie opis
createdDateTime fałsz Czas żądania.
lastActionDateTime fałsz Czas zmiany stanu.
resourceLocation prawda Identyfikator URI ładunku manifestu.
status fałsz Możliwe wartości i akcje.
Wartość Akcja klienta
niestartowane Wykonaj inne wywołanie, aby sprawdzić stan po oczekiwaniu na czas określony w nagłówku "Ponów próbę po".
uruchomiono Wykonaj inne wywołanie, aby sprawdzić stan po oczekiwaniu na czas określony w nagłówku "Ponów próbę po".
Zakończyła się pomyślnie Końcowy stan operacji, który wskazuje, że dane są gotowe. Pobierz ładunek manifestu przy użyciu identyfikatora URI określonego w obszarze resourceLocation.
niepowodzenie Stan terminalu, który wskazuje trwałą awarię. Uruchom ponownie operację.

W przypadku atrybutu błędu:

Nazwisko Opcjonalnie opis
error prawda Szczegóły błędu podane w formacie JSON, jeśli stan operacji nie powiedzie się.
Nazwisko Opcjonalnie opis
wiadomość fałsz Opisuje szczegółowo błąd
code fałsz Wskazuje rodzaj błędu, który wystąpił

Żądanie interfejsu API

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4447-83b4-1e83ab1d3640

Odpowiedź interfejsu API

Odpowiedź sugeruje oczekiwanie 10 sekund przed ponowną próbą podczas przetwarzania danych.

HTTP/1.1 200 OK  
Retry-After: 10  
{  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime":" 2022-06-1T10-01-05Z",  
"status": "running"  
}

Żądanie interfejsu API

(10 sekund po wcześniejszym żądaniu)

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingoperations/06d01983-07bf-4447-83b4-1e83ab1d3640

Odpowiedź interfejsu API

Interfejs API zwraca stan "powodzenie" i identyfikator URI "resourceLocation".

HTTP/1.1 200 OK  
Content-Type: application/json  
{  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime": "2022-06-1T10-01-13Z",  
"status": "succeeded",  
"resourceLocation": "https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingmanifests/e03e1882-ff59-4c09-882f-74e60b4d7743"  
}

Krok 3. Pobieranie ładunku manifestu

Obiekt wywołujący wysyła żądanie GET do adresu URL manifestu, aby dowiedzieć się więcej o tym, gdzie dane uzgodnień są przechowywane w obiektach blob platformy Azure.

Pobieranie manifestu

Pobiera manifest z informacjami o lokalizacji magazynu platformy Azure danych uzgodnień.

Żądanie interfejsu API

GET https://ep-billingreconservice-prod-d5bfczcnfvbqbdhx.z01.azurefd.net/v1/billingmanifests/{manifestId}

Parametry żądania

Nazwa/nazwisko In Wymagane Type Opis
manifestId Ścieżka Prawda String Identyfikator manifestu.

Nagłówek żądania

Zobacz [listę nagłówków żądań dla interfejsu API] w tym artykule.

Treść żądania

Nie dotyczy.

Stan odpowiedzi

Oprócz standardowego stanu HTTP interfejs API może zwrócić następujący stan HTTP:

Nazwa/nazwisko Opis
410 Zniknął Każdy link manifestu jest aktywny przez określoną ilość czasu kontrolowanego przez serwer. Po upływie czasu klient musi przesłać nowe żądanie.

Ładunek odpowiedzi

Odpowiedź interfejsu API zwraca następujące atrybuty:

Nazwa/nazwisko Opis
Wersja Wersja schematu manifestu.
Dataformat Format pliku danych rozliczeniowych. Możliwe wartości skompresowaneJSONLines: każdy obiekt blob jest skompresowanym plikiem, a dane w pliku są w formacie wierszy JSON. Dekompresuj plik w celu uzyskania dostępu do danych.
utcCreatedDateTime Czas tworzenia pliku manifestu.
Etag Wersja danych manifestu. Zmiana informacji rozliczeniowych generuje nową wartość elementu eTag.
partnerTenantId Identyfikator dzierżawy partnera.
Rootfolder Katalog główny pliku.
rootFolderSAS Token SYGNATURy dostępu współdzielonego do uzyskiwania dostępu do pliku.
partitionType Ta właściwość dzieli dane. Jeśli dana partycja ma więcej niż obsługiwaną liczbę, dane zostaną podzielone na wiele plików odpowiadających wartościom "partitionValue". Dane są domyślnie partycjonowane według liczby elementów wiersza w pliku. Nie ustawiaj stałej liczby elementów wiersza ani rozmiaru pliku w kodzie, ponieważ mogą one ulec zmianie.
BlobCount Łączna liczba plików dla tego identyfikatora dzierżawy partnera.
sizeInBytes Łączna liczba bajtów we wszystkich plikach.
obiekty blob Tablica JSON obiektów "blob" ze szczegółami wszystkich plików identyfikatora dzierżawy partnera.
Obiekt blob
Nazwisko Nazwa obiektu blob.
sizeInBytes Rozmiar obiektu blob w bajtach.
partitionValue Partycja zawierająca plik. Duża partycja zostanie podzielona na wiele plików, z których każda ma tę samą wartość "partitionValue".

Przykładowy ładunek manifestu

{
"version": "1",
"dataFormat": "compressedJSONLines",
"utcCretedDateTime": "2022-04-29T22:40:57.1853571Z",
"eTag": "0x5B168C7B6E589D2",
"partnerTenantId": "14f593ad-1edc-474d-aaa0-83abbf9638da",
"rootFolder": "https://{billing.blob.core.windows.net}/{folder_path}",
"rootFolderSAS": "\*\*\*",
"partitionType": "ItemCount",
"blobCount": 3,
"sizeInBytes": 2000,
"blobs": [
  {
  "name": "{blobName1.json.gz}",
  "sizeinBytes": 500,
  "partitionValue": "1"
  },
  {
  "name": "{blobName2.json.gz}",
  "sizeinBytes": 1000,
  "partitionValue": "2"
  },
  {
  "name": "{blobName3.json.gz}",
  "sizeinBytes": 500,
  "partitionValue": "3"
  }
  ]
}

Krok 4. Pobieranie danych uzgodnień użycia z lokalizacji magazynu

Pobierz token SAS i lokalizację magazynu obiektów blob z właściwości "rootFolderSAS" i "rootFolder" odpowiedzi interfejsu API ładunku manifestu. Użyj zestawu SDK/narzędzia usługi Azure Storage, aby pobrać i rozpakuj plik obiektu blob. Jest w formacie wierszy JSON.

Nagłówki żądań interfejsu API w warstwie Standardowa

Wszystkie interfejsy API akceptują następujące nagłówki:

Nazwa/nazwisko Wymagane Type Opis
Autoryzacja Prawda String Token elementu nośnego autoryzacji.
ms-correlationid Fałsz String Wewnętrzny monitor żądań. Każde żądanie generuje nowy tracker (GUID).
ms-cv Fałsz String Wewnętrzny monitor żądań.
ms-requestid Fałsz String Identyfikator idempotentności żądania.

Stany odpowiedzi interfejsu API w warstwie Standardowa

Poniżej przedstawiono stany HTTP z odpowiedzi interfejsu API:

Nazwa/nazwisko Opis
400 Nieprawidłowe żądanie Brak lub niepoprawne dane. Szczegóły błędu znajdują się w treści odpowiedzi.
401 Brak autoryzacji Obiekt wywołujący nie jest uwierzytelniany i musi uwierzytelniać się w usłudze interfejsu API partnera przed wykonaniem pierwszego wywołania.
403 Zabronione Obiekt wywołujący nie ma autoryzacji do składania żądania.
500 Wewnętrzny błąd serwera Interfejs API lub jeden z jego zależności nie może spełnić żądania. Spróbuj ponownie później.
404 Nie znaleziono Zasób jest niedostępny z parametrami wejściowymi.
410 Zniknął Upłynął limit czasu lub upłynął link manifestu. Prześlij nowe żądanie.

Atrybuty danych użycia

Odpowiedź interfejsu API użycia rozliczanego lub niezaliczonego z parametrem żądania "full" lub "basic" zwraca następujące atrybuty:

Atrybut "full" "basic"
PartnerId tak tak
PartnerName tak tak
Identyfikator klienta tak tak
CustomerName tak Tak
Nazwadomeny klienta tak nie
CustomerCountry tak nie
Identyfikator mpn tak nie
Tier2MpnId tak nie
Numer faktury tak tak
Identyfikator produktu tak tak
Identyfikator sku tak tak
Identyfikator dostępności tak nie
SkuName tak tak
ProductName tak nie
PublisherName tak tak
Identyfikator wydawcy tak nie
SubscriptionDescription tak nie
SubscriptionId tak tak
ChargeStartDate tak tak
ChargeEndDate tak tak
UsageDate tak tak
Typ miernika tak nie
MeterCategory tak nie
MeterId tak nie
MeterSubCategory tak nie
MeterName tak nie
MeterRegion tak nie
Jednostka tak tak
ResourceLocation tak nie
ConsumedService tak nie
ResourceGroup tak nie
Identyfikator RESOURCEURI tak tak
ChargeType tak tak
UnitPrice tak tak
Ilość tak tak
Unittype tak nie
BillingPreTaxTotal tak tak
BillingCurrency tak tak
PricingPreTaxTotal tak tak
PricingCurrency tak tak
ServiceInfo1 tak nie
ServiceInfo2 tak nie
Tagi tak nie
AdditionalInfo tak nie
EffectiveUnitPrice tak tak
PCToBCExchangeRate tak tak
Identyfikator upoważnienia tak tak
EntitlementDescription tak nie
PartnerEarnedCreditPercentage tak nie
CreditPercentage tak tak
Typ środków tak tak
BenefitOrderID tak tak
Identyfikator korzyści tak nie
BenefitType tak tak