다음을 통해 공유


소프트웨어 구매 취소

파트너 센터 API를 사용하여 소프트웨어 구독 및 영구 소프트웨어 구매를 취소할 수 있습니다(구매 날짜로부터 취소 기간 내에 구매한 경우). 이러한 취소를 위해 지원 티켓을 만들 필요가 없으며 대신 다음 셀프 서비스 방법을 사용할 수 있습니다.

ID API별 구독 업데이트를 사용하여 소프트웨어 구독(영구 소프트웨어 포함 안 됨)을 취소할 수도 있습니다.

필수 조건

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

C#

소프트웨어 주문을 취소하려면

  1. CreatePartnerOperations 메서드에 계정 자격 증명을 전달하여 파트너 작업을 가져오는 IPartner 인터페이스를 가져옵니다.

  2. 취소하려는 특정 주문을 선택합니다. 고객 식별자를 사용하여 Customers.ById() 메서드를 호출한 다음 주문 식별자를 사용하여 Orders.ById()를 호출합니다.

  3. Get 또는 GetAsync 메서드를 호출하여 주문을 검색합니다.

  4. Order.Status 속성을 .로 cancelled설정합니다.

  5. (선택 사항) 취소할 특정 품목을 지정하려면 Order.LineItems를 취소하려는 품목 목록으로 설정합니다.

  6. Patch() 메서드를 사용하여 주문을 업데이트합니다.

// IPartnerCredentials accountCredentials;
// string customerTenantId;

IPartner accountPartnerOperations = PartnerService.Instance.CreatePartnerOperations(accountCredentials);

// Cancel order
var order = accountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(orderId).Get();
order.Status = "cancelled";
order.LineItems = new List<OrderLineItem> {
    order.LineItems.First()
};
order = accountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(orderId).Patch(order);

REST 요청

요청 구문

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

URI 매개 변수

다음 쿼리 매개 변수를 사용하여 소프트웨어 주문을 취소합니다.

이름 종류 필수 설명
customer-tenant-id guid Y 값은 재판매인이 재판매인에 속한 지정된 고객에 대한 결과를 필터링할 수 있도록 하는 GUID 형식의 고객 테넌트 식별자입니다.
order-id string Y 이 값은 취소하려는 주문의 식별자를 나타내는 문자열입니다.

요청 헤더

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

요청 본문

{
    "id": "c403d91b21d2",
    "status": "cancelled",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
        }
    ]
}

요청 예제

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/orders/<order-id> HTTP/1.1
Accept: application/json
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd

{
    "id": "c403d91b21d2",
    "status": "cancelled",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
        }
    ]
}

REST 응답

성공하면 이 메서드는 취소된 품목이 있는 순서를 반환합니다.

주문 상태 주문의 모든 품목이 취소되면 취소되거나 주문의 모든 품목이 취소되지 않은 경우 완료됨으로 표시됩니다.

응답 성공 및 오류 코드

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

응답 예제

다음 예제 응답에서는 품목의 수량이 0이 되었음을 확인할 수 있습니다. 이 변경은 취소로 표시된 품목이 성공적으로 취소되었음을 의미합니다. 예제 주문에는 취소되지 않은 다른 품목이 포함되어 있습니다. 즉, 전체 주문의 상태 취소되지 않고 완료된 것으로 표시됩니다.

HTTP/1.1 200 OK
Content-Length: 866
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5

{
    "id": "c403d91b21d2",
    "alternateId": "c403d91b21d2",
    "referenceCustomerId": "45411344-b09d-47e7-9653-542006bf9766",
    "billingCycle": "one_time",
    "currencyCode": "USD",
    "currencySymbol": "$",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS",
            "termDuration": "P3Y",
            "transactionType": "New",
            "friendlyName": "SQL Server Enterprise - 2 Core License Pack - 3 year",
            "quantity": 0,
            "links": {
                "product": {
                    "uri": "/products/DG7GMGF0FKZV?country=US",
                    "method": "GET",
                    "headers": []
                },
                "sku": {
                    "uri": "/products/DG7GMGF0FKZV/skus/0003?country=US",
                    "method": "GET",
                    "headers": []
                },
                "availability": {
                    "uri": "/products/DG7GMGF0FKZV/skus/0003/availabilities/DG7GMGF0DWMS?country=US",
                    "method": "GET",
                    "headers": []
                }
            }
        },
        {
            "lineItemNumber": 1,
            "offerId": "DG7GMGF0DVT7:000C:DG7GMGF0FVZM",
            "termDuration": "P3Y",
            "transactionType": "New",
            "friendlyName": "Windows Server CAL - 1 Device CAL - 3 year",
            "quantity": 1,
            "links": {
                "product": {
                    "uri": "/products/DG7GMGF0DVT7?country=US",
                    "method": "GET",
                    "headers": []
                },
                "sku": {
                    "uri": "/products/DG7GMGF0DVT7/skus/000C?country=US",
                    "method": "GET",
                    "headers": []
                },
                "availability": {
                    "uri": "/products/DG7GMGF0DVT7/skus/000C/availabilities/DG7GMGF0FVZM?country=US",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2019-12-12T17:33:56.1306495Z",
    "status": "completed",
    "transactionType": "UserPurchase",
    "links": {
        "self": {
            "uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2",
            "method": "GET",
            "headers": []
        },
        "provisioningStatus": {
            "uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2/provisioningstatus",
            "method": "GET",
            "headers": []
        },
        "patchOperation": {
            "uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2",
            "method": "PATCH",
            "headers": []
        }
    },
    "client": {
        "marketplaceCountry": "US",
        "deviceFamily": "UniversalStore-PartnerCenter",
        "name": "Partner Center API"
    },
    "attributes": {
        "objectType": "Order"
    }
}