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