Udostępnij za pośrednictwem


Anulowanie zakupów oprogramowania

Interfejsy API Centrum partnerskiego umożliwiają anulowanie subskrypcji oprogramowania i bezterminowych zakupów oprogramowania (o ile te zakupy zostały dokonane w oknie anulowania od daty zakupu). Nie musisz tworzyć biletu pomocy technicznej w celu dokonania takich odwołań i zamiast tego można użyć następujących metod samoobsługi.

Możesz również anulować subskrypcje oprogramowania (nie dotyczy to oprogramowania bezterminowego) za pomocą interfejsu API Aktualizuj subskrypcję według identyfikatora.

Warunki wstępne

  • Poświadczenia zgodnie z opisem w Uwierzytelnianie Centrum Partnerów. Ten scenariusz obsługuje uwierzytelnianie przy użyciu zarówno samodzielnych poświadczeń aplikacji, jak i połączenia poświadczeń aplikacji oraz użytkownika.

C#

Aby anulować zamówienie oprogramowania,

  1. Przekaż dane uwierzytelniające konta do metody CreatePartnerOperations, aby uzyskać interfejs IPartner i uzyskać dostęp do operacji partnerskich.

  2. Wybierz określone zamówienie, które chcesz anulować. Wywołaj metodę Customers.ById() z identyfikatorem klienta, a następnie metodę Orders.ById() z identyfikatorem zamówienia.

  3. Wywołaj metodę Get lub GetAsync, aby pobrać zamówienie.

  4. Ustaw właściwość Order.Status na wartość cancelled.

  5. (Opcjonalnie) Jeśli chcesz określić niektóre elementy wiersza do anulowania, ustaw Order.LineItems na listę elementów wiersza, które chcesz anulować.

  6. Użyj metody Patch(), aby zaktualizować zamówienie.

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

Żądanie REST

Składnia żądania

Metoda Żądanie URI
PATCH {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

Parametry identyfikatora URI

Użyj następujących parametrów zapytania, aby anulować zamówienie oprogramowania.

Nazwa Typ Wymagane Opis
identyfikator-najemcy-klienta guid Y Wartość jest identyfikatorem klienta dzierżawy w formacie GUID, który umożliwia odsprzedawcy filtrowanie wyników dla klienta, który należy do odsprzedawcy.
identyfikator zamówienia ciąg Y Wartość jest ciągiem, który określa identyfikator zamówienia, które chcesz anulować.

Nagłówki zapytań

Aby uzyskać więcej informacji, zobacz nagłówki REST w Centrum Partnerów.

Treść żądania

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

Przykład żądania

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

Odpowiedź REST

Jeśli operacja powiedzie się, ta metoda zwraca zamówienie z anulowanymi pozycjami.

Stan zamówienia zostanie oznaczony jako anulowany, jeśli wszystkie elementy wiersza w zamówieniu zostaną anulowane, lub ukończone, jeśli nie wszystkie elementy wiersza w zamówieniu zostaną anulowane.

Kody sukcesu i błędów odpowiedzi

Każda odpowiedź zawiera kod stanu HTTP, który wskazuje powodzenie lub niepowodzenie i inne informacje o debugowaniu. Użyj narzędzia do śledzenia sieci, aby odczytać ten kod, typ błędu i parametry. Aby uzyskać pełną listę, zobacz Kody błędów REST Centrum partnerskiego.

Przykład odpowiedzi

W poniższej przykładowej odpowiedzi widać, że ilość elementu wiersza stała się zero (0). Ta zmiana oznacza, że element wiersza oznaczony do anulowania został pomyślnie anulowany. Przykładowe zamówienie zawiera inne pozycje zamówienia, które nie zostały anulowane, co oznacza, że stan ogólnego zamówienia zostanie oznaczony jako ukończony, a nie jako anulowany.

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