Dela via


Hämta en samling fakturor

gäller för: Partnercenter | Partnercenter som drivs av 21Vianet | Partnercenter för Microsoft Cloud for US Government

Hämta en samling av partnerns fakturor.

Förutsättningar

  • Behörighetsuppgifter enligt beskrivningen i Partner Center-autentisering. Det här scenariot stöder autentisering med både fristående app- och App+User-autentiseringsuppgifter.

C#

Om du vill hämta en samling med alla tillgängliga fakturor använder du egenskapen Invoices för att hämta ett gränssnitt för fakturaåtgärder och anropar sedan metoden Get eller GetAsync för att hämta samlingen.

Om du vill hämta en sidsamling med fakturor, anropar du först metoden BuildIndexedQuery och överför sidstorleken för att skapa ett IQuery-objekt. Använd sedan egenskapen Invoices för att hämta ett gränssnitt till fakturaåtgärder och skicka sedan IQuery-objektet till metoden Query eller QueryAsync för att skicka begäran och hämta den första sidan.

Använd sedan egenskapen Enumerators för att hämta ett gränssnitt till samlingen med resurssamlingsuppräknare som stöds och anropa sedan Invoices.Create för att skapa en uppräknare för att bläddra i samlingen med fakturor. Slutligen använder du uppräknaren för att hämta och arbeta med varje sida med fakturor enligt följande kodexempel. Varje anrop till metoden Nästa skickar en begäran om nästa fakturasida baserat på sidstorleken.

// 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&#39;-&#39;MM&#39;-&#39;dd&#39;T&#39;HH&#39;:&#39;mm&#39;:&#39;ss&#39;Z&#39;"),
            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();
}

Ett något annorlunda exempel finns i Exempel: Konsoltestapp. Project: Partner Center SDK-Exempel Klass: GetPagedInvoices.cs

Not

Samma API används för alla moderna kommersiella inköp samt 145p- och Office-licenser. Storlek och förskjutning beaktas endast för äldre fakturor. För alla moderna kommersiella köp kommer sidstorleksoffset & att ignoreras.

REST-begäran

Syntax för begäran

Metod Begär URI
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":{operator}} HTTP/1.1

URI-parametrar

Använd följande frågeparametrar när du skapar begäran.

Namn Typ Krävs Beskrivning
storlek Int Nej Antalet fakturaresurser som ska returneras i svaret. Den här parametern är valfri.
kompensera Int Nej Det nollbaserade indexet för den första fakturan som ska returneras.
filter sträng Nej Textbaserade anpassade filtervillkor för att minska fakturaresurserna i svaret. Använd det här villkoret för att förhindra timeout-fel. Se hur du använder filtervillkoret

Så här använder du filtervillkoret

Ett exempel på filtervillkoret:

/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"}

Om du vill filtrera dina data effektivt kan du förstå de tre huvudkomponenterna i filtervillkoren:

  • LeftFilter: Ange fält, värde och operator för vänster sida av filteruttrycket för att ange det inledande villkoret.
  • Fält: Attribut som ska användas för att filtrera
  • Värde: Värdet för attributet

Till exempel filtrerar "LeftFilter": {"Field":"InvoiceDate","Value":"01/01/2023","Operator":"greater_than_or_equals"} fakturor på eller efter den 1 januari 2023.

  • RightFilter: Definiera fältet, värdet och operatorn för den högra sidan av filteruttrycket för att slutföra villkoret.

Till exempel filtrerar "RightFilter":{"Field":"InvoiceDate","Value":"12/31/2023","Operator":"less_than_or_equals"} fakturor på eller före den 31 december 2023.

  • Operator: Anslut vänster- och högerfilter med en logisk operator. Använd antingen "och" eller "eller" för att kombinera kriterierna.

Till exempel ser "Operator": "and" till att filtret innehåller fakturor som uppfyller båda villkoren.

För ett enda filter anger du fältnamnet, värdet och operatorn utan att behöva konstruktionerna "LeftFilter" eller "RightFilter".

Den här metoden hjälper dig att filtrera dina data exakt och effektivt.

Begärandehuvuden

Mer information finns i REST-huvuden för Partnercenter.

Begärandetext

Ingen

Exempel på begäran

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: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com

Viktig

Från och med juni 2023 arkiveras nu den senaste Partner Center .NET SDK-versionen 3.4.0. Du kan ladda ned SDK-versionen från GitHub, tillsammans med en readme-fil som innehåller användbar information.

Partners uppmanas att fortsätta använda Partner Center REST-API:erna.

REST-svar

Om det lyckas innehåller svarstexten samlingen med Faktura resurser.

Svarsframgång och felkoder

Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och annan felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i REST-felkoder för Partnercenter.

Svarsexempel

HTTP/1.1 200 OK
Content-Length: 256
Content-Type: application/json; charset=utf-8
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
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"
    }
}