Condividi tramite


Annullare gli acquisti 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 il Aggiornare una sottoscrizione in base all'ID API.

Prerequisiti

  • Credenziali come descritte nell'autenticazione del Centro per i partner . Questo scenario supporta l'autenticazione con le credenziali sia dell'applicazione autonoma che dell'App+Utente.

C#

Per annullare un ordine software,

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

  2. Selezionare un determinato Order si desidera annullare. Chiamare il metodoCustomers.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 Digitare Obbligatorio Descrizione
customer-tenant-id guid Y 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.
id ordine stringa Y Il valore è una stringa che indica l'identificatore dell'ordine che si desidera annullare.

Intestazioni della richiesta

Per ulteriori informazioni, vedere intestazioni REST del Centro 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 linee 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 esito positivo 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, vedere codici di errore REST del Centro partner.

Esempio di risposta

Nella risposta di esempio seguente, è possibile notare che la quantità della riga di voce diventa 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"
    }
}