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 w tym oprogramowanie bezterminowe) przy użyciu interfejsu API Aktualizacji subskrypcji według identyfikatora .

Wymagania wstępne

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

C#

Aby anulować zamówienie oprogramowania,

  1. Przekaż poświadczenia konta do metody CreatePartnerOperations, aby uzyskać interfejs IPartner w celu pobrania operacji partnerskich.

  2. Wybierz określone zamówienie , które chcesz anulować. Wywołaj metodę Customers.ById() przy użyciu identyfikatora klienta, a następnie 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 cancelled.

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

  6. Użyj metody Patch(), aby zaktualizować kolejność.

// 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 Identyfikator URI żądania
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.

Imię i nazwisko/nazwa Pisz Wymagania opis
identyfikator dzierżawy klienta Identyfikator guid Y Wartość jest identyfikatorem GUID sformatowanym przez dzierżawę klienta, który umożliwia odsprzedawcy filtrowanie wyników dla danego klienta należącego do odsprzedawcy.
order-id string Y Wartość jest ciągiem, który określa identyfikator zamówienia, które chcesz anulować.

Nagłówki żądań

Aby uzyskać więcej informacji, zobacz Nagłówki REST Centrum partnerskiego.

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 elementami wiersza.

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

Kody powodzenia 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ładowa kolejność zawiera inne elementy wiersza, które nie zostały anulowane, co oznacza, że stan ogólnego zamówienia zostanie oznaczony jako ukończony, a nie 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"
    }
}