다음을 통해 공유


파트너 센터 API를 사용하여 새 상거래 구독에 대한 변경 내용 예약

적용 대상: 파트너 센터

이 문서에서는 파트너 센터 API를 사용하여 갱신에만 적용되는 새 상거래 구독대한 변경 내용을 예약하는 방법을 설명합니다. 이 API는 새로운 상거래 라이선스 기반 및 소프트웨어 구독을 지원합니다.

메모

라이선스 기반 서비스에 대한 새로운 상거래 환경에는 많은 새로운 기능이 포함되며 모든 CSP(클라우드 솔루션 공급자)에서 사용할 수 있습니다. 자세한 내용은 새 상거래 환경 개요참조하세요.

예약된 변경 내용을 만들면 다음 갱신이 발생할 때 구독을 자동으로 수정할 수 있습니다. 변경 내용을 예약하여 라이선스 수를 늘리거나 줄이고, 청구 기간 및 빈도를 수정하고, SKU를 업그레이드하도록 선택할 수도 있습니다. 변경을 예약하면 현재 기간 중 즉시가 아니라 갱신 시 구독을 수정할 수 있습니다.

중요하다

갱신 날짜 이전에 중간(즉시) 변경을 수행하면 이전에 갱신 시 발생하도록 예약된 모든 변경 내용이 삭제됩니다.

필수 구성 요소

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

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

  • 구독 ID입니다.

  • 구독에서 자동 갱신을 사용하도록 설정됩니다.

파트너 센터 메서드

파트너 센터에서 구독에 대한 변경 내용을 예약하려면 다음을 수행합니다.

  1. 고객을선택하세요.

  2. 변경 내용을 예약할 구독을 선택합니다.

  3. 자동 갱신을 사용하도록 설정합니다.

  4. 갱신 관리을 선택합니다.

  5. 구독의 수정 사항이 갱신 시 적용되도록 합니다.

  6. 확인 선택하여 측면 패널을 닫습니다.

  7. 제출을 선택하여 변경 내용을 저장합니다.

메모

갱신은 다음 날 오전 12:00(UTC)부터 기간의 마지막 날 이후에 처리됩니다. 갱신은 큐에서 처리되며 처리되는 데 최대 24시간이 걸릴 수 있습니다.

C#

고객의 구독에 대한 변경 내용을 예약하려면 다음을 수행합니다.

  1. ID구독을 가져옵니다.
  2. 예약된 전환 자격 유형에 대한 전환 자격 가져옵니다.
  3. ScheduledNextTermInstructions 개체를 만들고 구독의 속성으로 설정합니다.
  4. Patch() 메서드를 호출하여 예약된 변경 내용으로 구독을 업데이트합니다.
var selectedSubscription = subscriptionOperations.Get();
selectedSubscription.ScheduledNextTermInstructions = new ScheduledNextTermInstructions
{
    Product = new ProductTerm
    {
        ProductId = changeToProductId,
        SkuId = changeToSkuId,
        AvailabilityId = changeToAvailabilityId,
        BillingCycle = changeToBillingCycle,
        TermDuration = changeToTermDuration,
    },
    Quantity = changeToQuantity,
    customTermEndDate = DateTime,
};
var updatedSubscription = subscriptionOperations.Patch(selectedSubscription);

고객의 구독 변경을 예약하려면 원하는 변경이 다른 제품으로의 변경인 경우 다음 단계를 따르세요.

  1. ID로 구독을 얻습니다.
  2. 예약된 전환 자격 유형에 대한 전환 자격을 가져옵니다.
  3. Patch() 메서드를 호출하여 예약된 변경 내용으로 구독을 업데이트합니다.

REST 요청

요청 구문

메서드 요청 URI
PATCH {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1

URI 매개 변수

이 표에는 API를 호출하는 데 필요한 쿼리 매개 변수가 나열됩니다.

이름 유형 필수 묘사
고객-테넌트 ID guid Y 고객에게 해당하는 GUID입니다.
구독 ID guid Y 구독에 해당하는 GUID입니다.

요청 헤더

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

요청 본문

요청 본문에 scheduledNextTermInstructions 속성이 정의된 전체 구독 리소스가 필요합니다. 구독에 대한 변경 내용을 예약하려면 AutoRenewEnabled 속성이 true로 설정되었는지 확인합니다.

변환(EndofSaleWithConversions)이 포함된 판매 종료 제품의 가용성 ID의 경우:

  1. GetTransitionEligibility 함수는 CatalogItemID를 반환합니다.

    a. 예약된 자격 유형을 설정해야 합니다. 그렇지 않으면 기본값이 즉시 적용됩니다.

  2. CatalogItemID를 사용하여 availabilityID를 추출합니다.

메모

GET 가용성을 사용하여 scheduledNextTerm 지침의 가용성을 확인하고 모든 조건이 EOS 상태인 경우 빈 목록을 받게 됩니다. 유효한 경로를 확인하는 가장 좋은 방법은 GetTransitionEligibilty API를 호출하여 유효한 옵션을 반환하는 것입니다.

들판 유형 필수 묘사
다음 학기 일정 안내 개체 Y 구독에 대한 다음 조건 지침을 정의합니다. 속성에는 product 개체와 quantity 필드가 포함됩니다.

요청 예제

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<subscription-id> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
If-Match: <etag>
Content-Type: application/json
Content-Length: 1029
Expect: 100-continue
Connection: Keep-Alive

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "customTermEndDate": "2019-01-09T00:21:45.9263727",
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "active",
    "autoRenewEnabled": true,
    "scheduledNextTermInstructions": { 
      "product": { 
         "productId":  "DG7GMGF0DVSV", 
         "skuId":  "000P", 
         "availabilityId":  "DG7GMGF0F3Q9", 
         "billingCycle":  "Annual", 
         "termDuration":  "P3Y",
         "promotionId": "39NFJQT1PFPJ:000H:39NFJQT1Q5DK"
        }, 
      "quantity":  1 
      "customTermEndDate" : "2019-01-09T00:21:45.9263727",
     },  // original value = null 
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}

REST 응답

요청이 성공하면 이 메서드는 응답 본문에서 업데이트된 구독 리소스 속성을 반환합니다.

응답 성공 및 오류 코드

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

응답 예제

HTTP/1.1 200 OK
Content-Length: 1322
Content-Type: application/json; charset=utf-8
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "customTermEndDate": "2019-01-09T00:21:45.9263727",
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "active",
    "autoRenewEnabled": true,
    "scheduledNextTermInstructions": { 
      "product": { 
         "productId":  "DG7GMGF0DVSV", 
         "skuId":  "000P", 
         "availabilityId":  "DG7GMGF0F3Q9", 
         "billingCycle":  "Annual", 
         "termDuration":  "P3Y",
         "promotionId": "39NFJQT1PFPJ:000H:39NFJQT1Q5DK"
        }, 
      "quantity":  1 
      "customTermEndDate": "2019-01-09T00:21:45.9263727",
     },  // original value = null 
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}