다음을 통해 공유


청구서 컬렉션 가져오기

의 적용 범위: 파트너 센터 | 21Vianet에서 운영하는 파트너 센터 | 미국 정부용 Microsoft 클라우드 파트너 센터

파트너의 청구서 컬렉션을 검색하는 방법입니다.

필수 구성 요소

  • 파트너 센터 인증에 설명된 대로의 자격 증명. 이 시나리오는 독립 실행형 앱 및 App+사용자 자격 증명을 모두 사용하여 인증을 지원합니다.

C#

사용 가능한 모든 청구서의 컬렉션을 얻으려면 Invoices 속성을 사용하여 청구서 작업에 대한 인터페이스를 구한 다음 Get 또는 GetAsync 메서드를 호출하여 컬렉션을 검색합니다.

페이징된 청구서 컬렉션을 얻으려면 먼저 BuildIndexedQuery 메서드를 호출하고 페이지 크기를 전달하여 IQuery 개체를 만듭니다. 그런 다음 Invoices 속성을 사용하여 송장 작업에 대한 인터페이스를 가져와서 IQuery 개체를 Query 또는 QueryAsync 메서드에 전달하여 요청을 보내고 첫 번째 페이지를 가져옵니다.

다음으로 열거자 속성을 사용하여 지원되는 리소스 컬렉션 열거자 컬렉션에 대한 인터페이스를 가져와서 Invoices.Create 호출하여 청구서 컬렉션을 트래버스하기 위한 열거자를 만듭니다. 마지막으로 다음 코드 예제와 같이 열거자를 사용하여 청구서의 각 페이지를 검색하고 작업합니다. Next 메서드에 대한 각 호출은 페이지 크기에 따라 청구서의 다음 페이지에 대한 요청을 보냅니다.

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

약간 다른 예제는 샘플: 콘솔 테스트 앱참조하세요. 프로젝트: 파트너 센터 SDK 샘플 클래스: GetPagedInvoices.cs

메모

동일한 API는 145p 및 Office 라이선스뿐만 아니라 모든 최신 상용 구매에 사용됩니다. 크기 및 오프셋은 레거시 청구서에 대해서만 고려됩니다. 모든 최신 상용 구매의 경우 페이지 크기 & 오프셋은 무시됩니다.

REST 요청

요청 구문

메서드 요청 URI
가져오기 {baseURL}/v1/invoices?size={size}&offset={offset} HTTP/1.1
가져오기 {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 매개 변수

요청을 만들 때 다음 쿼리 매개 변수를 사용합니다.

이름 유형 필수 묘사
크기 정수 아니요 응답에서 반환할 청구서 리소스의 수입니다. 이 매개 변수는 선택 사항입니다.
오프셋 정수 아니요 반환할 첫 번째 청구서의 인덱스(0부터 시작)입니다.
필터 문자열 아니요 응답에서 청구서 리소스를 줄이기 위한 텍스트 기반 사용자 지정 필터 조건입니다. 시간 제한 오류를 방지하려면 이 조건을 사용합니다. 필터 조건 을 사용하는 방법을에서 보세요.

필터 조건을 사용하는 방법

필터 조건의 예:

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

데이터를 효과적으로 필터링하려면 필터 조건의 세 가지 주요 구성 요소를 이해합니다.

  • LeftFilter: 필터 식 왼쪽의 필드, 값 및 연산자를 지정하여 초기 조건을 설정합니다.
  • 필드: 필터링에 사용할 특성
  • 값: 특성의 값

예를 들어 "LeftFilter": {"Field":"InvoiceDate","Value":"01/01/2023","Operator":"greater_than_or_equals"} 2023년 1월 1일 또는 그 이후에 청구서를 필터링합니다.

  • RightFilter: 필터 식의 오른쪽에 대한 필드, 값 및 연산자를 정의하여 조건을 완료합니다.

예를 들어 "RightFilter":{"Field":"InvoiceDate","Value":"12/31/2023","Operator":"less_than_or_equals"} 2023년 12월 31일 또는 그 이전에 청구서를 필터링합니다.

  • 연산자: 왼쪽 및 오른쪽 필터를 논리 연산자와 연결합니다. 조건을 결합하려면 "and" 또는 "or"를 사용합니다.

예를 들어 "Operator": "and" 필터에 두 조건을 모두 충족하는 청구서가 포함되어 있는지 확인합니다.

단일 필터의 경우 "LeftFilter" 또는 "RightFilter" 구문 없이 필드 이름, 값 및 연산자를 입력합니다.

이 방법을 사용하면 데이터를 정확하고 효율적으로 필터링할 수 있습니다.

요청 헤더

자세한 내용은 파트너 센터 REST 헤더 참조하세요.

요청 본문

없음

요청 예제

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

중요하다

2023년 6월 현재 최신 파트너 센터 .NET SDK 릴리스 3.4.0이 보관됩니다. 유용한 정보가 포함된 추가 정보 파일 함께 GitHub SDK 릴리스를다운로드할 수 있습니다.

파트너는 파트너 센터 REST API계속 사용하는 것이 좋습니다.

REST 응답

성공하면 응답 본문에 청구서 리소스 컬렉션이 포함됩니다.

응답 성공 및 오류 코드

각 응답에는 성공 또는 실패 및 기타 디버깅 정보를 나타내는 HTTP 상태 코드가 함께 제공됩니다. 네트워크 추적 도구를 사용하여 이 코드, 오류 유형 및 기타 매개 변수를 읽습니다. 전체 목록은 파트너 센터 REST 오류 코드를 참조하세요.

응답 예제

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