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

Użyj tych interfejsów API, aby asynchronicznie pozyskać dane nowego handlu dotyczące dobowego użycia, zarówno naliczone, jak i nienaliczone.

Uwaga

Ten interfejs API nie jest już obsługiwany i nie udostępnia żadnych informacji o użyciu po okresie rozliczeniowym z marca 2025 r. Aby bezproblemowo przełączyć się na nowe interfejsy API, skorzystaj z następującego linku: Interfejs API do uzgadniania dziennego, ocenianego użycia z funkcją rozliczania i nienaliczania w wersji 2 (GA). Dziękujemy za Państwa uwagę i czekamy na Państwa dalsze sukcesy z naszymi interfejsami API rozliczeń.

Uwaga

Dostęp do elementów wierszy dziennego użycia, które nie zostały naliczone, można uzyskać za pośrednictwem interfejsu API lub portalu Centrum partnerskiego. Aby zapewnić dokładne dane, poczekaj do 24 godzin na dostępność. W zależności od lokalizacji i momentu raportowania użycia mierników mogą wystąpić dalsze opóźnienia.

Priorytetem jest terminowe dostarczanie rozliczanych danych dziennego użycia. Od czasu do czasu najnowsze dane dotyczące dziennego użycia, które nie zostały jeszcze zafakturowane, mogą nie być widoczne, dopóki nie będą dostępne dane dotyczące użycia rozliczanego z poprzedniego miesiąca. Po otrzymaniu danych dotyczących rozliczonego użycia możesz pobrać wszystkie zaktualizowane nierozliczone dane o użyciu od początku miesiąca.

Zrozumienie i cierpliwość są doceniane, ponieważ staramy się dostarczać najdokładniejsze i terminowe informacje.

Ważne

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

  • Rezerwacja platformy Azure
  • Plan oszczędnościowy Azure
  • Biuro
  • Dynamika
  • Microsoft Power Apps
  • Oprogramowanie bezterminowe
  • Subskrypcja oprogramowania
  • Produkt SaaS firmy innej niż Microsoft lub platforma handlowa

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ść utrzymywania otwartego połączenia przez wiele godzin i przetwarzania iteracyjnego milionów transakcji.

Używamy kluczyi asynchronicznych wzorców żądań-odpowiedzi , aby zoptymalizować nasze interfejsy API fakturowania i uzgodnień w celu asynchronicznego dostarczania wyników. Odpowiedzi interfejsu API dostarczają token umożliwiający dostęp do danych dotyczących uzgodnień ze wszystkimi atrybutami lub ich 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 sekcje:

Punkt końcowy elementu wiersza użycia

Użyj tego interfejsu API, aby uzyskać dostęp do rozliczanych lub nierozliczonych pozycji dotyczących użycia. Zwraca 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 zawiera nagłówek Retry-After, który wskazuje, jak długo należy czekać przed wysłaniem kolejnego żądania.

Punkt końcowy manifestu

Ten punkt końcowy udostępnia folder do przechowywania, 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 sekwencji

Diagram przedstawia kroki wymagane do pobrania danych uzgodnień.

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

Sekwencja akcji użytkownika

Wykonaj następujące kroki, aby pobrać dane uzgodnień.

Krok 1. Przesyłanie żądania

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

Pobierz pozycje nierozliczonego użycia

Pobierz nierozliczone pozycje 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 Typ Opis
fragment Zapytanie 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 Zapytanie 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 V1.
kod waluty Zapytanie 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
Dostawca Nie dotyczy. (Zwraca wszystkie użycie planu platformy Azure i jest równoważne elementowi "onetime" w istniejących interfejsach API wersji V1).
czyPartnerZarobiłKredyt Nie dotyczy. (zwraca wszystkie dane, niezależnie od PEC.)
Rozmiar Nie dotyczy.
Przesunięcie Nie dotyczy.
operacjaWyszukiwania 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 status HTTP 202. Na podstawie żądania interfejs API może zwrócić inny status standardowy.

Nazwa/nazwisko Opis
Zaakceptowano 202 Żądanie jest akceptowane. Sprawdź adres URL nagłówka operacji, aby uzyskać stan żądania.

Pobierz pozycje rozliczeniowe użycia

Pobierz rozliczane pozycje 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 Typ Opis
identyfikator faktury Ścieżka Prawda String Numer faktury w Centrum Partnerskim.
Fragment Zapytanie 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
Dostawca Nie dotyczy. (Zwraca wszystkie użycia planu platformy Azure i jest równoważne 'jednorazowemu' istniejącemu interfejsowi API w wersji V1).
czyPartnerZarobiłKredyt Nie dotyczy. (zwraca wszystkie dane, niezależnie od PEC).
Rozmiar Nie dotyczy.
Przesunięcie Nie dotyczy.
operacja wyszukiwania 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 "HTTP 202 Zaakceptowano". W zależności od żądania API może zwrócić inny standardowy stan.

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 końcowym 'succeeded' lub 'failed'. Adres URL manifestu to "resourceLocation" w przypadku sukcesu.

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 Typ 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 statusu HTTP opisanego w tym artykule, interfejs API może zwrócić następujący status HTTP:

Nazwa/nazwisko Opis
410 Zniknął Każde łącze operacyjne jest aktywne przez określony czas trwania, kontrolowany 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
czasUtworzenia fałsz Czas wykonania żądania
lastActionDateTime fałsz Czas zmiany stanu.
lokalizacja zasobów prawda Identyfikator URI ładunku w manifeście.
status fałsz Możliwe wartości i akcje.
Wartość Akcja klienta
nierozpoczęte Zadzwoń ponownie, aby sprawdzić status po odczekaniu czasu określonego w nagłówku "Retry-After".
uruchomiono Wykonaj kolejne wywołanie, aby sprawdzić stan po oczekiwaniu na czas określony w nagłówku "Ponów próbę po".
Powiodło się Końcowy stan operacji, który wskazuje, że dane są gotowe. Pobierz dane manifestu za pomocą URI określonego w resourceLocation.
niepowodzenie Stan terminalu, który wskazuje trwałą awarię. Uruchom ponownie operację.

W przypadku atrybutu błędu:

Nazwisko Opcjonalnie opis
błąd 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
kod 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 zawierający informacje o lokalizacji platformy Azure, w której przechowywane są dane uzgodnień.

Żądanie interfejsu API

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

Parametry żądania

Nazwa/nazwisko In Wymagane Rodzaj 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 statusu HTTP interfejs API może zwrócić ten status 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.
format danych 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. Aby uzyskać dostęp do danych, zdekompresuj plik.
utcCreatedDateTime Czas tworzenia pliku manifestu.
eTag Wersja danych manifestu. Zmiana informacji rozliczeniowych generuje nową wartość elementu eTag.
partnerTenantId Identyfikator dzierżawcy partnera.
folder główny Katalog główny pliku.
rootFolderSAS Token SAS do uzyskania dostępu do pliku.
typ partycji Ta właściwość dzieli dane. Jeśli dana partycja ma więcej niż obsługiwaną liczbę, dane są podzielone na wiele plików odpowiadających wartościom "partitionValue". Domyślnie system partycjonuje dane na podstawie liczby elementów wiersza w pliku. Nie ustawiaj stałej liczby elementów wiersza ani rozmiaru pliku w kodzie, ponieważ reguła partycjonowania może ulec zmianie.
LiczbaBlobów Łączna liczba plików dla tego identyfikatora dzierżawy partnera.
rozmiarWBajtach Łączna liczba bajtów we wszystkich plikach.
obiekty blob Tablica JSON zawierająca obiekty typu "blob" ze szczegółami wszystkich plików dla identyfikatora dzierżawy partnera.
Obiekt blob
Nazwisko Nazwa Blob
rozmiarWBajtach Rozmiar obiektu blob w bajtach.
wartość partycji Partycja zawierająca plik. Duża partycja zostanie podzielona na wiele plików, z których każda ma tę samą wartość "partitionValue".

Przykład ładunku manifestu

{
"version": "1",
"dataFormat": "compressedJSONLines",
"utcCretedDateTime": "2022-04-29T22:40:57.1853571Z",
"eTag": "0x5B168C7B6E589D2",
"partnerTenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"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ń dotyczących użycia z lokalizacji przechowywania

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 rozpakować plik blob. Jest w formacie wierszy JSON.

Nagłówki standardowych żądań API

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

Nazwa/nazwisko Wymagane Typ 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.

Standardowe statusy odpowiedzi interfejsu API

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 Dzwoniący nie jest autoryzowany 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ął Limit czasu łącza manifestu został przekroczony. Prześlij nowe żądanie.

Atrybuty danych użycia

Odpowiedź interfejsu API dotycząca użycia rozliczonego lub nierozliczonego z parametrem żądania "full" lub "basic" zwraca następujące atrybuty:

Atrybut "pełny" "podstawowy"
PartnerId tak tak
PartnerName tak tak
Identyfikator klienta tak tak
NazwaKlienta tak Tak
Nazwadomeny klienta tak nie
KrajKlienta 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
Opis Subskrypcji tak nie
SubscriptionId tak tak
DataRozpoczęciaOpłaty tak tak
Data zakończenia opłaty tak tak
Data Użytkowania tak tak
Typ Licznika tak nie
Kategoria Licznika tak nie
MeterId tak nie
Podkategoria Licznika tak nie
MeterName tak nie
MeterRegion tak nie
Jednostka tak tak
LokalizacjaZasobu tak nie
ConsumedService tak nie
ResourceGroup tak nie
Identyfikator RESOURCEURI tak tak
TypOpłaty tak tak
CenaJednostkowa tak tak
Ilość tak tak
Typ jednostki tak nie
Łączna kwota przed opodatkowaniem tak tak
WalutaRozliczeniowa tak tak
Całkowita cena przed opodatkowaniem tak tak
WalutaCenowa tak tak
ServiceInfo1 tak nie
ServiceInfo2 tak nie
Tagi tak nie
Dodatkowe Informacje tak nie
EfektywnaCenaJednostkowa tak tak
PCToBCExchangeRate tak tak
PCToBCExchangeRateDate tak nie
Identyfikator upoważnienia tak tak
Opis Uprawnienia tak nie
Procentowy udział kredytu partnera zarobionego tak nie
Procent Kredytu tak tak
Typ kredytu tak tak
BenefitOrderID tak tak
Identyfikator korzyści tak nie
TypŚwiadczeń tak tak