Faturaların koleksiyonunu alma

Şunlar için geçerlidir: İş Ortağı Merkezi | 21Vianet tarafından işletilen İş Ortağı Merkezi | ABD Kamu için Microsoft Bulut İş Ortağı Merkezi

İş ortağının faturalarının koleksiyonunu alma.

Önkoşullar

  • İş Ortağı Merkezi kimlik doğrulamasında açıklandığı gibi kimlik bilgileri. Bu senaryo hem tek başına Uygulama hem de Uygulama+Kullanıcı kimlik bilgileriyle kimlik doğrulamayı destekler.

C#

Kullanılabilir tüm faturaların koleksiyonunu almak için Invoices özelliğini kullanarak fatura işlemlerine yönelik bir arabirim alın ve sonra koleksiyonu almak için Get veya GetAsync yöntemini çağırın.

Sayfalandırılmış bir fatura koleksiyonu almak için önce BuildIndexedQuery yöntemini çağırın ve sayfa boyutunu geçirerek bir IQuery nesnesi oluşturun. Ardından Invoices özelliğini kullanarak fatura işlemlerine yönelik bir arabirim alın ve ardından isteği göndermek ve ilk sayfayı almak için IQuery nesnesini Query veya QueryAsync yöntemine geçirin.

Ardından, Desteklenen kaynak koleksiyonu numaralandırıcıları koleksiyonuna bir arabirim almak için Numaralandırıcılar özelliğini kullanın ve fatura koleksiyonundan geçiş yapmak üzere bir numaralandırıcı oluşturmak için Invoices.Create öğesini çağırın. Son olarak, aşağıdaki kod örneğinde gösterildiği gibi her fatura sayfasını almak ve bunlarla çalışmak için numaralandırıcıyı kullanın. Next yöntemine yapılan her çağrı, sayfa boyutuna göre sonraki fatura sayfası için bir istek gönderir.

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

Biraz farklı bir örnek için bkz . Örnek: Konsol test uygulaması. Proje: İş Ortağı Merkezi SDK Örnekleri Sınıfı: GetPagedInvoices.cs

Not

Aynı API, tüm modern ticari satın almaların yanı sıra 145p ve Office lisansları için de kullanılır. Boyut ve uzaklık yalnızca eski faturalar için dikkate alınır. Tüm modern ticari satın alma işlemleri için pagesize & offset yoksayılır.

REST isteği

İstek söz dizimi

Metot İstek URI'si
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 parametreleri

İsteği oluştururken aşağıdaki sorgu parametrelerini kullanın.

Adı Tür Zorunlu Açıklama
size int Hayır Yanıtta döndürülecek fatura kaynaklarının sayısı. Bu parametre isteğe bağlıdır.
fark int Hayır İade etmek için ilk faturanın sıfır tabanlı dizini.
filtrele Dize Hayır Yanıttaki fatura kaynaklarını azaltmak için metin tabanlı özel filtre ölçütleri. Zaman aşımı hatasını önlemek için bu koşulu kullanın. Filtre koşulunun nasıl kullanıldığını görün

Filtre koşulunu kullanma

Filtre koşulu örneği:

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

Filtre ölçütleri üç bölümden oluşur:

  • LeftFilter: Filtre ifadesinin sol tarafı için alanı, değeri ve işleci belirttiğiniz ilk filtre yapısı.

    Alan: Filtrelemek için kullanılacak öznitelik. Değer: Özniteliğin değeri

    Örneğin, "LeftFilter": {"Field":"InvoiceDate","Value":"01/01/2023","Operator":"greater_than_or_equals"}, fatura tarihi 1 Ocak 2023 veya sonrasında olan faturaları filtrelemek istediğiniz anlamına gelir.

  • RightFilter: Filtre ifadesinin sağ tarafı için alanı, değeri ve işleci belirttiğiniz ikinci filtre yapısı.

    Örneğin, "RightFilter":{"Field":"InvoiceDate","Value":"12/31/2023","Operator":"less_than_or_equals"}, fatura tarihi 31 Aralık 2023 veya öncesinde olan faturaları filtrelemek istediğiniz anlamına gelir.

  • İşleç: Sol ve sağ filtreleri bağlayan mantıksal işleç. İşleç olarak "ve" veya "veya" kullanabilirsiniz.

    Örneğin, "İşleç": "ve", hem sol hem de sağ filtre ölçütlerine uyan faturaları filtrelemek istediğiniz anlamına gelir.

Tek bir filtre kullanmak için alan adını, değerini ve işlecini girmeniz gerekir. "LeftFilter" veya "RightFilter" yapısına gerek yoktur.

İstek üst bilgileri

Daha fazla bilgi için bkz . İş Ortağı Merkezi REST üst bilgileri.

Request body

Hiçbiri

İstek örneği

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

Önemli

Haziran 2023 itibarıyla en son İş Ortağı Merkezi .NET SDK sürümü 3.4.0 arşivlenmiştir. SDK sürümünü, yararlı bilgiler içeren bir benioku dosyasıyla birlikte GitHub'dan indirebilirsiniz.

İş ortaklarının İş Ortağı Merkezi REST API'lerini kullanmaya devam etmesi teşvik edilir.

REST yanıtı

Başarılı olursa, yanıt gövdesi Fatura kaynaklarının koleksiyonunu içerir.

Yanıt başarısı ve hata kodları

Her yanıt, başarılı veya başarısız olduğunu ve diğer hata ayıklama bilgilerini gösteren bir HTTP durum koduyla birlikte gelir. Bu kodu, hata türünü ve diğer parametreleri okumak için bir ağ izleme aracı kullanın. Tam liste için bkz . İş Ortağı Merkezi REST hata kodları.

Yanıt örneği

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