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
- Autentiseringsuppgifter enligt beskrivningen i Partnercenter-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 Fakturor 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 skickar den sidstorleken för att skapa ett IQuery-objekt. Använd sedan egenskapen Fakturor för att hämta ett gränssnitt för 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 sida med fakturor 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 lite annorlunda exempel finns i Exempel: Konsoltestapp. Projekt: SDK-exempelklass för Partnercenter: GetPagedInvoices.cs
Kommentar
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 inköp ignoreras sidstorlek och förskjutning.
REST-begäran
Syntax för begäran
Metod | URI för förfrågan |
---|---|
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 | Obligatoriskt | Beskrivning |
---|---|---|---|
storlek | heltal | Nej | Antalet fakturaresurser som ska returneras i svaret. Den här parametern är valfri. |
förskjutning | heltal | 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","Värde":"12/31/2023","Operator":"less_than_or_equals"},"Operator":"och"}
Filtervillkoren består av tre delar:
LeftFilter: Den första filterkonstruktionen, där du anger fält, värde och operator för vänster sida av filteruttrycket.
Fält: Attribut som ska användas för att filtrera. Värde: Värdet för attributet
Till exempel "LeftFilter": {"Field":"InvoiceDate","Value":"01/01/2023","Operator":"greater_than_or_equals"} innebär att du vill filtrera fakturor som har ett fakturadatum den 1 januari 2023 eller senare.
RightFilter: Den andra filterkonstruktionen, där du anger fält, värde och operator för höger sida av filteruttrycket.
Till exempel "RightFilter":{"Field":"InvoiceDate","Value":"12/31/2023","Operator":"less_than_or_equals"} innebär att du vill filtrera fakturor som har ett fakturadatum på eller före den 31 december 2023.
Operator: Den logiska operator som ansluter vänster- och högerfilter. Du kan använda antingen "och" eller "eller" som operator.
Till exempel betyder "Operator": "and" att du vill filtrera fakturor som uppfyller både filtret till vänster och höger.
Om du vill använda ett enda filter anger du bara fältnamnet, värdet och operatorn. Inget behov av konstruktionen "LeftFilter" eller "RightFilter".
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: de894e18-f027-4ac0-8b5a-34f0c222af0c
X-Locale: en-US
MS-PartnerCenter-Application: Partner Center .NET SDK Samples
Host: api.partnercenter.microsoft.com
Viktigt!
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.
Partner uppmanas att fortsätta att använda REST-API:er för Partnercenter.
REST-svar
Om det lyckas innehåller svarstexten samlingen med fakturaresurser .
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: 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"
}
}