고객 구독 청구 주기 변경

적용 대상: 파트너 센터 | 21Vianet에서 운영되는 파트너 센터 | Microsoft Cloud for US Government 파트너 센터

이 API를 사용하면 레거시 구독에 대한 청구 빈도만 수정할 수 있습니다.

NCE(새 상거래 환경) 구독 및 레거시 구독에 대한 청구 빈도를 수정하려면 ID별 구독 업데이트 - 파트너 앱 개발자 | Microsoft Learn API.

주문을 월별에서 연간 청구로 또는 연간 청구에서 월별 청구로 업데이트합니다.

파트너 센터에서는 고객의 구독 세부 정보 페이지로 이동하여 이 작업을 수행할 수 있습니다. 이 경우 구독을 변경하고 제출할 수 있는 기능을 사용하여 구독에 대한 현재 청구 주기 정의하는 옵션이 표시됩니다.

이 문서의 범위를 벗어 납니다.

  • 평가판에 대한 청구 주기 변경
  • 비연기 기간 제안(매월, 6년) 및 Azure 구독에 대한 청구 주기 변경
  • 비활성 구독에 대한 청구 주기 변경
  • Microsoft 온라인 서비스 라이선스 기반 구독에 대한 청구 주기 변경

필수 조건

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

  • 고객 ID (customer-tenant-id). 고객의 ID를 모르는 경우 고객 작업 영역을 선택하고 고객 목록에서 고객을 선택한 다음 계정을 선택하여 파트너 센터에서 조회할 수 있습니다. 고객 계정 페이지의 고객 계정 정보 섹션에서 Microsoft ID를 찾습니다. Microsoft ID는 고객 ID(customer-tenant-id)와 동일합니다.

  • 주문 ID입니다.

C#

청구 주기 빈도를 변경하려면 Order.BillingCycle 속성을 업데이트합니다.

// IAggregatePartner partnerOperations;
// string customerId;
// string offerId;
// string orderId;

var order = new Order()
{
    ReferenceCustomerId = customerId,
    BillingCycle = BillingCycleType.Annual,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            LineItemNumber = 0,
            OfferId = offerId,
            SubscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            Quantity = 1
        }
    }
};

var createdOrder = partnerOperations.Customers.ById(customerId).Orders.ById(orderId).Patch(order);

REST 요청

요청 구문

메서드 요청 URI
패치 {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

URI 매개 변수

이 표에는 구독의 수량을 변경하는 데 필요한 쿼리 매개 변수가 나열됩니다.

속성 Type 필수 설명
customer-tenant-id GUID Y 고객을 식별하는 GUID 형식의 customer-tenant-id
order-id GUID Y 주문 식별자

요청 헤더

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

요청 본문

다음 표에서는 요청 본문의 속성을 설명합니다.

순서

속성 형식 필수 설명
Id string N 주문을 성공적으로 만들 때 제공되는 주문 식별자입니다.
ReferenceCustomerId string Y 고객 식별자
BillingCycle string Y 파트너가 이 주문에 대해 청구되는 빈도를 나타냅니다. 지원되는 값은 BillingCycleType에 있는 멤버 이름입니다.
LineItems 개체의 배열 Y OrderLineItem 리소스의 배열
CreationDate 날짜/시간 N 주문이 만들어진 날짜(날짜-시간 형식)
특성 Object N "ObjectType": "OrderLineItem"을 포함합니다.

OrderLineItem

속성 형식 필수 설명
LineItemNumber 번호 Y 줄 항목 번호(0부터 시작)
OfferId string Y 제품의 ID
SubscriptionId string Y 구독의 ID
FriendlyName string N 명확하게 하기 위해 파트너가 정의한 구독의 이름입니다.
수량 번호 Y 라이선스 또는 인스턴스 수
PartnerIdOnRecord string N 레코드 파트너의 PartnerID
특성 Object N "ObjectType": "OrderLineItem"을 포함합니다.

요청 예시

연간 청구로 업데이트

PATCH https://api.partnercenter.microsoft.com/v1/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/CF3B0E37-BE0B-4CDD-B584-D1A97D98A922 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 414
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "BillingCycle" : "Annual",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "SubscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "FriendlyName": "Some friendly name",
            "Quantity": 2,
            "PartnerIdOnRecord": null,
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

REST 응답

성공하면 이 메서드는 응답 본문에서 업데이트된 구독 순서를 반환합니다.

응답 성공 및 오류 코드

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

응답 예제

HTTP/1.1 200 OK
Content-Length: 1135
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CV: WtFy3zI8V0u2lnT9.0
MS-ServerId: 020021921
Date: Wed, 25 Jan 2017 23:01:08 GMT

{
    "id": "cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
    "referenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "billingCycle": "Annual",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "195416C1-3447-423A-B37B-EE59A99A19C4",
            "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
            "friendlyName": "new offer purchase",
            "quantity": 5,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
                    "method": "GET",
                    "headers": []
                }
            }
        },
        {
            "lineItemNumber": 1,
            "offerId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "friendlyName": "Some friendly name",
            "quantity": 2,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-01-25T14:53:12.093-08:00",
    "links": {
        "self": {
            "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6ImNmM2IwZTM3LWJlMGItNGNkZC1iNTg0LWQxYTk3ZDk4YTkyMiIsInZlcnNpb24iOjJ9",
        "objectType": "Order"
    }
}