Condividi tramite


Annullare acquisti di software

È possibile usare le API del Centro per i partner per annullare le sottoscrizioni software e gli acquisti software perpetui (purché tali acquisti siano stati effettuati entro la finestra di annullamento dalla data di acquisto). Non è necessario creare un ticket di supporto per effettuare tali annullamenti e usare invece i metodi self-service seguenti.

È anche possibile annullare le sottoscrizioni software (non incluso il software perpetuo) usando l'API Aggiorna una sottoscrizione in base all'ID.

Prerequisiti

C#

Per annullare un ordine software,

  1. Passare le credenziali dell'account al metodo CreatePartnerOperations per ottenere un'interfaccia IPartner per ottenere le operazioni dei partner.

  2. Selezionare un ordine specifico che si desidera annullare. Chiamare il metodo Customers.ById() con l'identificatore del cliente, seguito da Orders.ById() con l'identificatore dell'ordine.

  3. Chiamare il metodo Get o GetAsync per recuperare l'ordine.

  4. Impostare la proprietà Order.Status su cancelled.

  5. (Facoltativo) Se si desidera specificare determinati elementi di riga per l'annullamento , impostare Order.LineItems su un elenco di voci che si desidera annullare.

  6. Usare il metodo Patch() per aggiornare l'ordine.

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

Richiesta REST

Sintassi della richiesta

Metodo URI della richiesta
PATCH {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

Parametri URI

Usare i parametri di query seguenti per annullare un ordine software.

Nome Digita Obbligatorio Descrizione
customer-tenant-id guid S Il valore è un identificatore del tenant del cliente formattato con GUID che consente al rivenditore di filtrare i risultati per un determinato cliente appartenente al rivenditore.
order-id string S Il valore è una stringa che indica l'identificatore dell'ordine che si desidera annullare.

Intestazioni delle richieste

Per altre informazioni, vedi Intestazioni REST del Centro per i partner.

Corpo della richiesta

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

Esempio di richiesta

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

Risposta REST

In caso di esito positivo, questo metodo restituisce l'ordine con voci annullate.

Lo stato dell'ordine verrà contrassegnato come annullato se tutti gli elementi dell'ordine vengono annullati o completati se non vengono annullati tutti gli elementi dell'ordine.

Codici di errore e di esito della risposta

Ogni risposta viene fornita con un codice di stato HTTP che indica l'esito positivo o negativo e altre informazioni di debug. Usare uno strumento di traccia di rete per leggere questo codice, il tipo di errore e i parametri. Per l'elenco completo, vedi Codici di errore REST del Centro per i partner.

Risposta di esempio

Nella risposta di esempio seguente è possibile notare che la quantità di voce è diventata zero (0). Questa modifica indica che l'elemento della riga contrassegnato per l'annullamento è stato annullato correttamente. L'ordine di esempio contiene altri elementi di riga che non sono stati annullati, il che significa che lo stato dell'ordine complessivo verrà contrassegnato come completato, non annullato.

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