Získání kolekce faktur
Platí pro: Partnerské centrum | Partnerské centrum provozované společností 21Vianet | Partnerské centrum pro Microsoft Cloud pro státní správu USA
Jak načíst kolekci faktur partnera
Požadavky
- Přihlašovací údaje popsané v ověřování v Partnerském centru Tento scénář podporuje ověřování pomocí samostatných přihlašovacích údajů aplikace i aplikace a uživatele.
C#
Pokud chcete získat kolekci všech dostupných faktur, pomocí vlastnosti Faktury získejte rozhraní pro operace faktury a pak zavolejte metodu Get nebo GetAsync, která načte kolekci.
Pokud chcete získat stránkovanou kolekci faktur, nejprve zavolejte Metodu BuildIndexedQuery a předejte jí velikost stránky pro vytvoření objektu IQuery. Dále pomocí vlastnosti Invoices získejte rozhraní pro operace faktury a pak předejte objekt IQuery metodě Query nebo QueryAsync k odeslání požadavku a získání první stránky.
Dále pomocí enumerátory vlastnost Enumerators získat rozhraní pro kolekci podporovaných výčtů kolekce prostředků a pak volání Invoices.Create vytvořit enumerátor pro procházení kolekce faktur. Nakonec použijte enumerátor k načtení a práci s každou stránkou faktur, jak je znázorněno v následujícím příkladu kódu. Každé volání metody Next odešle požadavek na další stránku faktur na základě velikosti stránky.
// IAggregatePartner partnerOperations;
// int invoicePageSize;
// Is this an unpaged or paged request?
bool isUnpaged = (this.invoicePageSize <= 0);
// If the scenario is unpaged, get all the invoices, otherwise get the first page.
var invoicesPage = (isUnpaged)
? partnerOperations.Invoices.Get()
: partnerOperations.Invoices.Query(QueryFactory.Instance.BuildIndexedQuery(this.invoicePageSize));
// Create an invoice enumerator for traversing the invoice pages.
var invoicesEnumerator = partnerOperations.Enumerators.Invoices.Create(invoicesPage);
int lineCounter = 1;
while (invoicesEnumerator.HasValue)
{
// Print the current invoice results page.
var invoices = invoicesEnumerator.Current.Items;
foreach (var i in invoices)
{
Console.WriteLine(String.Format("{0,3}. {1} {2} {3,16:C2}",
lineCounter++,
i.Id,
i.InvoiceDate.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"),
i.TotalCharges));
}
Console.WriteLine();
Console.Write("Press any key to retrieve the next invoices page");
Console.ReadKey();
// Get the next page of invoices.
invoicesEnumerator.Next();
}
Mírně odlišný příklad najdete v části Ukázka: Konzolová testovací aplikace. Projekt: Třída ukázek sady SDK v Partnerském centru: GetPagedInvoices.cs
Poznámka:
Stejné rozhraní API se používá pro všechny moderní komerční nákupy i pro licence 145p a Office. Velikost a posun se považují pouze za starší faktury. U všech moderních komerčních nákupů budou stránky a posun ignorovány.
Požadavek REST
Syntaxe požadavku
metoda | Identifikátor URI žádosti |
---|---|
GET | {baseURL}/v1/invoices?size={size}&offset={offset} HTTP/1.1 |
GET | {baseURL}/v1/invoices?size={size}&offset={offset}&filter={"LeftFilter":{"Field":{field},"Value":{value},"Operator":{operator}},"RightFilter":{"Field":{field};"Value":{value};"Operator":{operator}}:{operator}} HTTP/1.1 |
Parametry identifikátoru URI
Při vytváření požadavku použijte následující parametry dotazu.
Name | Type | Požadováno | Popis |
---|---|---|---|
size | int | No | Počet fakturovaných prostředků, které se mají vrátit v odpovědi. Tento parametr je volitelný. |
offset | int | No | Index založený na nule první faktury, který se má vrátit. |
filter | string | No | Kritéria vlastního filtru založená na textu pro zmenšení prostředků faktury v odpovědi Tuto podmínku použijte, pokud chcete zabránit chybě časového limitu. Podívejte se, jak používat podmínku filtru. |
Jak používat podmínku filtru
Příklad podmínky filtru:
/v1/invoices?size=10&offset=0&filter={"LeftFilter":{"Field":"InvoiceDate","Value":"01/01/2023","Operator":"greater_than_or_equals"},"RightFilter":{"Field":"InvoiceDate","Value":"12/31/2023","Operator":"less_than_or_equals"},"Operator":"and"}
Kritéria filtru se skládají ze tří částí:
LeftFilter: První konstruktor filtru, kde zadáte pole, hodnotu a operátor pro levou stranu výrazu filtru.
Pole: Atribut, který se má použít k filtrování. Hodnota: Hodnota atributu
Například LeftFilter: {"Field":"InvoiceDate","Value":"01/01/2023","Operator":"greater_than_or_equals"} znamená, že chcete filtrovat faktury, které mají datum faktury 1. ledna 2023 nebo po 1. lednu 2023.
RightFilter: Druhý konstruktor filtru, kde zadáte pole, hodnotu a operátor pro pravou stranu výrazu filtru.
Například "RightFilter":{"Field":"InvoiceDate","Value":"12/31/2023","Operator":"less_than_or_equals"} znamená, že chcete filtrovat faktury s datem faktury dne 31. prosince 2023 nebo před 31. prosincem 2023.
Operátor: Logický operátor, který spojuje filtry vlevo a vpravo. Jako operátor můžete použít "and" nebo "or".
Například Operátor: "a" znamená, že chcete filtrovat faktury, které splňují kritéria filtru vlevo i vpravo.
Pokud chcete použít jeden filtr, stačí zadat název pole, hodnotu a operátor. Není nutné použít konstruktor LeftFilter ani RightFilter.
Záhlaví žádosti
Další informace najdete v tématu Hlavičky REST Partnerského centra.
Text požadavku
Nic
Příklad požadavku
GET https://api.partnercenter.microsoft.com/v1/invoices?size=200&offset=0 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: e88d014d-ab70-41de-90a0-f7fd1797267d
MS-CorrelationId: de894e18-f027-4ac0-8b5a-34f0c222af0c
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com
Důležité
Od června 2023 se teď archivuje nejnovější verze sady .NET SDK partnerského centra 3.4.0. Vydání sady SDK si můžete stáhnout z GitHubu spolu se souborem readme, který obsahuje užitečné informace.
Doporučujeme, aby partneři dál používali rozhraní REST API Partnerského centra.
Odpověď REST
V případě úspěchu text odpovědi obsahuje kolekci prostředků faktury .
Kódy úspěšnosti a chyb odpovědi
Každá odpověď obsahuje stavový kód HTTP, který označuje úspěch nebo selhání a další informace o ladění. Ke čtení tohoto kódu, typu chyby a dalších parametrů použijte nástroj pro trasování sítě. Úplný seznam najdete v tématu Kódy chyb REST v Partnerském centru.
Příklad odpovědi
HTTP/1.1 200 OK
Content-Length: 256
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 57eb2ca7-755f-450f-9187-eae1e75a0114
MS-RequestId: a45e6643-1caf-4429-8f90-07c03d85bc2b
Date: Thu, 24 Mar 2016 05:21:01 GMT
{
"totalCount": 2,
"items": [
{
"id": "D02005YFHI",
"invoiceDate": "2017-01-21T00:00:00Z",
"totalCharges": 24606.35,
"paidAmount": 1000,
"currencyCode": "GBP",
"currencySymbol": "£",
"pdfDownloadLink": "/invoices/D02005YFHI/documents/statement",
"taxReceipts": [
{
"id": "123456",
"taxReceiptPdfDownloadLink": "/invoices/D02005YFHI/receipts/123456/documents/statement"
}
],
"invoiceDetails": [
{
"invoiceLineItemType": "billing_line_items",
"billingProvider": "office",
"links": {
"self": {
"uri": "/invoices/Recurring-D02005YFHI/lineitems/Office/BillingLineItems",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "InvoiceDetail"
}
}
],
"documentType": "invoice",
"invoiceType": "Recurring",
"links": {
"self": {
"uri": "/invoices/Recurring-D02005YFHI",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Invoice"
}
},
{
"id": "G000024130",
"invoiceDate": "2018-02-08T01:22:47.603895Z",
"totalCharges": 586366,
"paidAmount": 0,
"currencyCode": "CHF",
"currencySymbol": "CHF",
"pdfDownloadLink": "/invoices/G000024130/documents/statement",
"taxReceipts": [
{
"id": "234567",
"taxReceiptPdfDownloadLink": "/invoices/G000024130/receipts/234567/documents/statement"
}
],
"invoiceDetails": [
{
"invoiceLineItemType": "billing_line_items",
"billingProvider": "one_time",
"links": {
"self": {
"uri": "/invoices/OneTime-G000024130/lineitems/OneTime/BillingLineItems",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "InvoiceDetail"
}
}
],
"amendments": [
{
"id": "G000024131",
"invoiceDate": "2018-02-08T18:44:37.5381456Z",
"totalCharges": 107661.12,
"paidAmount": 0,
"currencyCode": "CHF",
"currencySymbol": "CHF",
"invoiceDetails": [
{
"invoiceLineItemType": "billing_line_items",
"billingProvider": "one_time",
"attributes": {
"objectType": "InvoiceDetail"
}
}
],
"documentType": "adjustment_note",
"amendsOf": "G000024130",
"invoiceType": "OneTime",
"attributes": {
"objectType": "Invoice"
}
}
],
"documentType": "void_note",
"invoiceType": "OneTime",
"links": {
"self": {
"uri": "/invoices/OneTime-G000024130",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Invoice"
}
}
],
"links": {
"self": {
"uri": "/invoices?size=2&offset=0",
"method": "GET",
"headers": []
},
"next": {
"uri": "/invoices?size=2&offset=2",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}