Udostępnij za pośrednictwem


Interfejs API uzgadniania faktur rozliczanych w wersji 2 (GA)

Dotyczy: Centrum partnerskie (niedostępne w suwerennej chmurze)

Nasz asynchroniczny interfejs API oferuje szybszy i bardziej zarządzany sposób uzyskiwania dostępu do danych rozliczeń i uzgodnień za pośrednictwem obiektów blob platformy Azure. W przypadku tego interfejsu API nie musisz utrzymywać otwartego połączenia przez wiele godzin ani pętli przez partie 2000 elementów wiersza jednocześnie.

Zoptymalizowaliśmy nasz nowy interfejs API uzgodnień faktur rozliczanych za pomocą klucza valet i asynchronicznych wzorców żądań i odpowiedzi . Ten interfejs API udostępnia token sygnatury dostępu współdzielonego (SAS), którego można użyć do uzyskiwania dostępu do wszystkich atrybutów lub podzestawu rozliczanych danych uzgodnień faktur.

Uwaga

Nowy interfejs API nie jest hostowany na hoście interfejsu API Centrum partnerskiego. Zamiast tego można go znaleźć w programie MS Graph na stronie Używanie interfejsu API programu Microsoft Graph do eksportowania danych rozliczeń partnerów — Microsoft Graph w wersji 1.0. Aby uzyskać dostęp do tego interfejsu API, zapoznaj się z poniższymi szczegółami.

Ten interfejs API można teraz używać tylko dla chmury publicznej/globalnej programu MS Graph. Nie jest jeszcze dostępna dla platformy Azure Government, Azure (Niemcy) ani Azure (Chiny 21Vianet).

Przegląd interfejsu API

Aby pobrać rozliczane nowe dane uzgodnień faktur handlowych asynchronicznie, użyj dwóch punktów końcowych interfejsu API. Proces jest następujący:

Punkt końcowy uzgadniania faktur rozliczanych

Użyj tego interfejsu API, aby pobrać nowe pozycje wierszy rozliczeń faktur rozliczanych w handlu . Interfejs API zwraca stan HTTP 202 i nagłówek lokalizacji zawierający adres URL. Sonduj ten adres URL w regularnych odstępach czasu, aż otrzymasz stan powodzenia z adresem URL manifestu.

Punkt końcowy stanu operacji

Aby uzyskać stan powodzenia, należy regularnie wywoływać ten interfejs API. Jeśli dane nie są gotowe, odpowiedź interfejsu API zawiera nagłówek Ponów próbę po, aby poinformować, jak długo czekać przed ponowną próbą. Po zakończeniu operacji uzyskasz zasób manifestu z folderem magazynu, w którym można pobrać dane użycia. Odpowiedź dzieli pliki na mniejsze elementy pod kątem zoptymalizowanej przepływności i równoległości we/wy.

Diagramów sekwencji

Oto diagram sekwencji przedstawiający kroki pobierania nowych danych uzgodnień faktur handlowych.

Diagram przedstawiający kroki pobierania danych uzgodnień.

Sekwencja akcji użytkownika

Aby pobrać rozliczane dane uzgodnień faktur, wykonaj następujące kroki:

Krok 1. Przesyłanie żądania

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

Pobieranie rozliczanych elementów wierszy uzgodnień faktur

Żądanie interfejsu API

POST https://graph.microsoft.com/v1.0/reports/partners/billing/reconciliation/billed/export

Accept: application/json

Content-Type: application/json

{

"invoiceId": "G016907411",

"attributeSet": "basic"

}

Parametry zapytań

Nie dotyczy

Treść żądania

Atrybut Wymagania Type Opis
attributeSet Fałsz String Wybierz pozycję "full" dla wszystkich atrybutów lub "basic" dla ograniczonego zestawu. Wartość domyślna to "full". (Zobacz listę atrybutów w tym artykule). Opcjonalny.
invoiceId Prawda String Unikatowy identyfikator każdej faktury. Wymagany.

Nagłówki żądań

Zażądaj nagłówków dla interfejsu API, wykonując kroki wymienione w artykule Najlepsze rozwiązania dotyczące korzystania z programu Microsoft Graph.

Odpowiedź interfejsu API

HTTP/1.1 202 Accepted  
Location: <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Interfejs API zwykle odpowiada stanem HTTP 202. Inne możliwe stany, na podstawie żądań, są wymienione w stanach odpowiedzi interfejsu API w warstwie Standardowa w tym artykule.

Kod opis
202 — zaakceptowane Twoje żądanie zostało zaakceptowane. Aby sprawdzić stan żądania, wykonaj zapytanie o adres URL podany w nagłówku lokalizacji.

Krok 2. Sprawdzanie stanu żądania

Aby sprawdzić stan żądania, poczekaj na odpowiedź HTTP 200 ze stanem "powodzenie" lub "niepowodzenie". Adres URL manifestu zostanie wyświetlony w atrybucie "resourceLocation", jeśli żądanie zakończy się pomyślnie.

Uzyskiwanie stanu operacji

Pobiera stan żądania.

Żądanie interfejsu API

GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Parametry żądania

Nazwisko Uwzględnij w Wymagania Type Opis
operationId Identyfikator URI żądania Prawda String Unikatowy identyfikator sprawdzania stanu żądania. Wymagany.

Nagłówek żądania

Zażądaj nagłówków dla interfejsu API, wykonując kroki wymienione w artykule Najlepsze rozwiązania dotyczące korzystania z programu Microsoft Graph.

Treść żądania

Nie dotyczy.

Stan odpowiedzi

Oprócz standardowych stanów HTTP wymienionych w stanach odpowiedzi interfejsu API w warstwie Standardowa w tym artykule interfejs API może zwrócić następujący stan HTTP:

Kod opis
410 – Zniknął Link manifestu wygasa po upływie określonego czasu. Aby ponownie uzyskać link manifestu, wyślij nowe żądanie.

Ładunek odpowiedzi

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

Atrybut Wymagania Opis
identyfikator Prawda Unikatowy identyfikator każdej odpowiedzi
Wymagany.
status Prawda Wartości i akcje: wymagane.
notstarted: Poczekaj na czas określony w nagłówku "Ponów próbę po", a następnie wykonaj kolejne wywołanie, aby sprawdzić stan.
running: Zaczekaj na czas określony w nagłówku "Ponów próbę po", a następnie wykonaj kolejne wywołanie, aby sprawdzić stan.
powodzenie: dane są gotowe. Pobierz ładunek manifestu przy użyciu identyfikatora URI określonego w obszarze resourceLocation.
niepowodzenie: operacja nie powiodła się trwale. Uruchom go ponownie.
createdDateTime Prawda Czas wysłania żądania.
Wymagany.
lastActionDateTime Prawda Czas ostatniej zmiany stanu.
Wymagany.
resourceLocation Fałsz Identyfikator URI ładunku manifestu.
Opcjonalny.
error Fałsz Jeśli operacja nie powiedzie się, szczegóły błędu są podane w formacie JSON.
Opcjonalny.
Uwzględniane są następujące atrybuty:
komunikat: szczegółowy opis błędu.
code: typ błędu, który wystąpił.

Obiekt lokalizacji zasobu

Atrybut Opis
identyfikator Unikatowy identyfikator manifestu.
schemaVersion Wersja schematu manifestu.
Dataformat Format pliku danych rozliczeniowych.
compressedJSON: format danych, w którym każdy obiekt blob jest skompresowanym plikiem zawierającym dane w formacie wierszy JSON . Aby pobrać dane z każdego obiektu blob, zdekompresuj je.
createdDateTime Data i godzina utworzenia pliku manifestu.
Etag Wersja danych manifestu. Zmiana informacji rozliczeniowych generuje nową wartość.
partnerTenantId Identyfikator dzierżawy partnera.
rootDirectory Katalog główny pliku.
sasToken Token sygnatury dostępu współdzielonego (sygnatura dostępu współdzielonego), który umożliwia odczytywanie wszystkich plików w katalogu.
partitionType Dzieli dane na wiele obiektów blob na podstawie atrybutu partitionValue . System dzieli partycje, które przekraczają obsługiwaną liczbę. Domyślnie dane są partycjonowane na podstawie liczby elementów wiersza w pliku. Nie ustawiaj stałej liczby elementów wiersza ani rozmiaru pliku w kodzie, ponieważ te wartości mogą ulec zmianie.
BlobCount Łączna liczba plików dla tego identyfikatora dzierżawy partnera.
obiekty blob Tablica JSON obiektów "blob", które zawierają szczegóły pliku dla identyfikatora dzierżawy partnera.
Obiekt blob Obiekt zawierający następujące szczegóły:
name: nazwa obiektu blob.
partitionValue: partycja zawierająca plik. Duża partycja jest podzielona na wiele plików, z każdym plikiem zawierającym tę samą wartość "partitionValue".
name Nazwa obiektu blob.
partitionValue Partycja zawierająca plik. Duża partycja jest podzielona na wiele plików, z każdym plikiem zawierającym tę samą wartość "partitionValue".

Żądanie interfejsu API

GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Odpowiedź interfejsu API

Odpowiedź zaleca oczekiwanie na 10 sekund przed ponowną próbą, gdy dane są nadal przetwarzane.

HTTP/1.1 200 OK  
Retry-After: 10  
{  
"id": "9ab9cb54-d07f-4f52-9ea6-a09d7de52c14",  
"createdDateTime": "2022-06-1T10-01-03.4Z",  
"lastActionDateTime": "2022-06-1T10-01-05Z",  
"status": "running"  
}

Żądanie interfejsu API

(10 sekund po poprzednim żądaniu...)

GET <https://graph.microsoft.com/v1.0/reports/partners/billing/operations/9ab9cb54-d07f-4f52-9ea6-a09d7de52c14>

Odpowiedź interfejsu API

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

HTTP/1.1 200 OK  
Content-Type: application/json  
{

    "@odata.context": "https://graph.microsoft.com/v1.0/\$metadata#reports/partners/billing/operations/\$entity",

    "@odata.type": "#microsoft.graph.partners.billing.exportSuccessOperation",

    "id": "f2170b13-6a8e-47d6-b481-6988490dc0cb",

    "createdDateTime": "2023-12-05T21:17:29Z",

    "lastActionDateTime": "2023-12-05T21:18:00.8897902Z",

    "status": "succeeded",

    "resourceLocation": {

        "id": "44e8500b-ab92-490e-8ac3-90500a1d3427",

        "createdDateTime": "2023-11-06T19:58:47.513Z",

        "schemaVersion": "2",

        "dataFormat": "compressedJSON",

        "partitionType": "default",

        "eTag": "RwDrn7fbiTXy6UULE",

        "partnerTenantId": "0e195b37-4574-4539-bc42-0e539b9684c0",

        "rootDirectory": "https://adlsreconbuprodeastus201.blob.core.windows.net/path_id",

        "sasToken": "{token}",

        "blobCount": 1,

        "blobs": \[

            {

                "name": "part-00123-5a93fa5d-749f-48bc-a372-9b021d93c3fa.c000.json.gz",

                "partitionValue": "default"

            }

        \]

    }

}

Krok 3. Pobieranie rozliczanych danych uzgodnień faktur z usługi Azure Blob Storage

Pobierz token sygnatury dostępu współdzielonego (SAS) i lokalizację magazynu obiektów blob z właściwości "sasToken" i "rootDirectory" odpowiedzi interfejsu API ładunku manifestu. Zestaw SDK/narzędzie usługi Azure Storage do pobrania i rozpakuj plik obiektu blob. Jest on w formacie JSONLines .

Napiwek

Zapoznaj się z naszym przykładowym kodem , aby pobrać i rozpakować plik obiektu blob platformy Azure do lokalnej bazy danych.

Stany odpowiedzi interfejsu API w warstwie Standardowa

Możesz uzyskać te stany HTTP z odpowiedzi interfejsu API:

Kod opis
400 — nieprawidłowe żądanie Brak żądania lub zawiera nieprawidłowe dane. Sprawdź treść odpowiedzi, aby uzyskać szczegółowe informacje o błędzie.
401 — Brak autoryzacji Obiekt wywołujący nie jest uwierzytelniany i musisz uwierzytelnić się w usłudze interfejsu API partnera przed wykonaniem pierwszego wywołania.
403 — Zabronione Nie masz niezbędnej autoryzacji, aby wysłać żądanie.
404 — nie znaleziono Żądane zasoby nie są dostępne z podanymi parametrami wejściowymi.
410 – Zniknął Link manifestu nie jest już prawidłowy ani aktywny. Prześlij nowe żądanie.
500 — wewnętrzny błąd serwera Interfejs API lub jedna z jego zależności nie może teraz spełnić żądania. Spróbuj ponownie później.

Atrybuty danych uzgadniania faktur rozliczanych

Aby porównać atrybuty zwracane przez interfejs API uzgadniania faktur rozliczanych dla "pełnych" lub "podstawowych" zestawów atrybutów, zapoznaj się z poniższą tabelą.

Atrybut Pełny Podstawowy
PartnerId tak tak
Identyfikator klienta tak tak
CustomerName tak tak
Nazwadomeny klienta tak nie
CustomerCountry tak nie
Numer faktury tak tak
Identyfikator mpn tak nie
Tier2MpnId tak tak
OrderId (Identyfikator zamówienia) tak tak
OrderDate (Data zamówienia) tak tak
Identyfikator produktu tak tak
Identyfikator sku tak tak
Identyfikator dostępności tak tak
SkuName tak nie
ProductName tak tak
ChargeType tak tak
UnitPrice tak tak
Ilość tak nie
Suma częściowa tak tak
TaxTotal tak tak
Łącznie tak tak
Waluta tak tak
PriceAdjustmentDescription tak tak
PublisherName tak tak
Identyfikator wydawcy tak nie
SubscriptionDescription tak nie
SubscriptionId tak tak
ChargeStartDate tak tak
ChargeEndDate tak tak
TerminAndBillingCycle tak tak
EffectiveUnitPrice tak tak
Unittype tak nie
Identyfikator alternatywny tak nie
BillableQuantity tak tak
RozliczeniaFrequency tak nie
PricingCurrency tak tak
PCToBCExchangeRate tak tak
PCToBCExchangeRateDate tak nie
MeterDescription tak nie
ReservationOrderId tak tak
CreditReasonCode tak tak
Data rozpoczęcia subskrypcji tak tak
Data subskrypcji tak tak
Identyfikator odwołania tak tak
ProductQualifiers tak nie
Identyfikator promocji tak tak
ProductCategory tak tak

Przykładowy kod

Aby uzyskać wskazówki dotyczące korzystania z interfejsu API, zobacz poniższy link zawierający przykładowy kod w języku C#.

Partner-Center-Billing-Recon-Samples: Samples for API for Getting Billing recon data from Partner Center (github.com): Samples for API for Billing recon-data from Partner Center (github.com).