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'-'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();
}
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"
}
}