Cancelar compras de softwareCancel software purchases

Se aplica a:Applies to:

  • Centro de partnersPartner Center

Puede usar las API del centro de partners para cancelar las suscripciones de software y las compras de software perpetuas (siempre que las compras se realicen en la ventana de cancelación desde la fecha de compra).You can use the Partner Center APIs to cancel software subscriptions and perpetual software purchases (as long as those purchases were made within the cancellation window from the purchase date). No es necesario crear una incidencia de soporte técnico para llevar a cabo dichas cancelaciones y, en su lugar, puede usar los siguientes métodos de autoservicio.You don't need to create a support ticket to make such cancellations, and can use the following self-service methods instead.

Requisitos previosPrerequisites

  • Credenciales tal como se describen en el artículo Autenticación del Centro de partners.Credentials as described in Partner Center authentication. Este escenario admite la autenticación con las credenciales de aplicación y aplicación independientes.This scenario supports authentication with both standalone App and App+User credentials.

C#C#

Para cancelar un pedido de software,To cancel a software order,

  1. Pase las credenciales de la cuenta al método CreatePartnerOperations para obtener una interfaz colección ipartner para obtener las operaciones del asociado.Pass your account credentials to the CreatePartnerOperations method to get an IPartner interface to get partner operations.

  2. Seleccione un orden determinado que desee cancelar.Select a particular Order you wish to cancel. Llame al método customers. ById () con el identificador de cliente, seguido de Orders. ById () con el identificador de pedido.Call the Customers.ById() method with the customer identifier, followed by Orders.ById() with order identifier.

  3. Llame al método Get o GetAsync para recuperar el orden.Call the Get or GetAsync method to retrieve the order.

  4. Establezca la propiedad Order. status en cancelled .Set the Order.Status property to cancelled.

  5. Opta Si desea especificar determinados elementos de línea para la cancelación, establezca Order. LineItems en la lista de elementos de línea que desea cancelar.(Optional) If you want to specify certain line items for cancellation, set the Order.LineItems to list of line items that you want to cancel.

  6. Use el método patch () para actualizar el orden.Use the Patch() method to update the order.

// IPartnerCredentials accountCredentials;
// Customer tenant Id to be deleted.
// 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);

Solicitud RESTREST request

Sintaxis de la solicitudRequest syntax

MétodoMethod URI de solicitudRequest URI
PATCHPATCH {baseurl}/v1/customers/{customer-tenant-ID}/Orders/{Order-ID} http/1.1{baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

Parámetros de URIURI parameters

Use los parámetros de consulta siguientes para eliminar un cliente.Use the following query parameters to delete a customer.

NombreName TipoType ObligatorioRequired DescripciónDescription
customer-tenant-idcustomer-tenant-id guidguid YY El valor es un identificador de inquilino de cliente con formato de GUID que permite que el revendedor filtre los resultados de un determinado cliente que pertenece al distribuidor.The value is a GUID formatted customer tenant identifier that allows the reseller to filter the results for a given customer that belongs to the reseller.
ID. de pedidoorder-id stringstring YY El valor es una cadena que denota el identificador del orden que se desea cancelar.The value is a string that denotes the identifier of the order that you want to cancel.

Encabezados de solicitudRequest headers

Para obtener más información, consulta Encabezados REST del Centro de partners.For more information, see Partner Center REST headers.

Cuerpo de la solicitudRequest body

{
    “id”: “2y6dF_rVgDAXMxypQPPnTquuXhKVK_3N1",
    status": "cancelled",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
        }
    ]
}

Ejemplo de solicitudRequest example

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: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd

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

Respuesta RESTREST response

Si es correcto, este método devuelve el orden con los elementos de línea cancelados.If successful, this method returns the order with canceled line items.

El estado del pedido se marcará como cancelado si se cancelan todos los elementos de línea del pedido , o si no se cancelan todos los elementos de línea del pedido.The order status will be marked as either cancelled if all the line items in the order are cancelled, or completed if not all line items in the order are canceled.

Códigos de error y de respuesta correctosResponse success and error codes

Cada respuesta incluye un código de estado HTTP que indica si la operación se ha realizado correctamente o con errores y proporciona información de depuración adicional.Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Use una herramienta de seguimiento de red para leer este código, el tipo de error y los parámetros adicionales.Use a network trace tool to read this code, error type, and additional parameters. Para obtener la lista completa, consulta Códigos de error de REST del Centro de partners.For the full list, see Partner Center REST error codes.

Ejemplo de respuestaResponse example

En la respuesta de ejemplo siguiente, puede ver que la cantidad de elemento de línea con el identificador de oferta se DG7GMGF0FKZV:0003:DG7GMGF0DWMS ha convertido en cero (0).In the following example response, you can see that the quantity of line item with the offer identifier DG7GMGF0FKZV:0003:DG7GMGF0DWMS has become zero (0). Este cambio significa que el elemento de línea que se marcó para la cancelación se canceló correctamente.This change means that the line item that was marked for cancellation has been canceled successfully. El orden de ejemplo contiene otros elementos de línea que no se cancelaron, lo que significa que el estado del pedido general se marcará como completado, no cancelado.The example order contains other line items that weren't canceled, which means that the status of the overall order will be marked as completed, not cancelled.

HTTP/1.1 200 OK
Content-Length: 866
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5

{
    "id": "2y6dF_rVgDAXMxypQPPnTquuXhKVK_3N1",
    "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/2y6dF_rVgDAXMxypQPPnTquuXhKVK_3N1",
            "method": "GET",
            "headers": []
        },
        "provisioningStatus": {
            "uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/2y6dF_rVgDAXMxypQPPnTquuXhKVK_3N1/provisioningstatus",
            "method": "GET",
            "headers": []
        },
        "patchOperation": {
            "uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/2y6dF_rVgDAXMxypQPPnTquuXhKVK_3N1",
            "method": "PATCH",
            "headers": []
        }
    },
    "client": {
        "marketplaceCountry": "US",
        "deviceFamily": "UniversalStore-PartnerCenter",
        "name": "Partner Center API"
    },
    "attributes": {
        "objectType": "Order"
    }
}