Dela via


Avbryt programvaruinköp

Du kan använda API:er för Partnercenter för att avbryta programvaruprenumerationer och eviga programvaruköp (så länge dessa inköp gjordes inom avbokningsfönstret från inköpsdatumet). Du behöver inte skapa ett supportärende för att göra sådana avbokningar och kan använda följande självbetjäningsmetoder i stället.

Du kan också avbryta programvaruprenumerationer (inklusive evig programvara) med hjälp av API:et Uppdatera en prenumeration efter ID .

Förutsättningar

  • Autentiseringsuppgifter enligt beskrivningen i Partnercenter-autentisering. Det här scenariot stöder autentisering med både fristående app- och App+User-autentiseringsuppgifter.

C#

Om du vill avbryta en programvarubeställning

  1. Skicka dina kontoautentiseringsuppgifter till metoden CreatePartnerOperations för att hämta ett IPartner-gränssnitt för att hämta partneråtgärder.

  2. Välj en viss order som du vill avbryta. Anropa metoden Customers.ById() med kundidentifieraren följt av Orders.ById() med orderidentifierare.

  3. Anropa metoden Get eller GetAsync för att hämta ordern.

  4. Ange egenskapen Order.Status till cancelled.

  5. (Valfritt) Om du vill ange vissa radobjekt för annullering anger du Order.LineItems till en lista över radobjekt som du vill avbryta.

  6. Använd metoden Patch() för att uppdatera ordningen.

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

REST-begäran

Syntax för begäran

Metod URI för förfrågan
PATCH {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

URI-parametrar

Använd följande frågeparametrar för att avbryta en programvarubeställning.

Namn Type Obligatoriskt Beskrivning
customer-tenant-id Guid Y Värdet är en GUID-formaterad kundklientidentifierare som gör det möjligt för återförsäljaren att filtrera resultatet för en viss kund som tillhör återförsäljaren.
order-id Sträng Y Värdet är en sträng som anger identifieraren för den ordning som du vill avbryta.

Begärandehuvuden

Mer information finns i REST-huvuden för Partnercenter.

Begärandetext

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

Exempel på begäran

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": "c403d91b21d2",
    "status": "cancelled",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
        }
    ]
}

REST-svar

Om det lyckas returnerar den här metoden ordern med avbrutna radobjekt.

Orderstatusen markeras antingen som annullerad om alla radobjekt i ordern avbryts eller slutförs om inte alla radobjekt i ordern avbryts.

Svarsframgång och felkoder

Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och annan felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och parametrarna. Den fullständiga listan finns i Rest-felkoder för Partnercenter.

Svarsexempel

I följande exempelsvar kan du se att antalet radobjekt har blivit noll (0). Den här ändringen innebär att radobjektet som markerats för annullering har avbrutits. Exempelordningen innehåller andra radobjekt som inte avbröts, vilket innebär att statusen för den övergripande ordern markeras som slutförd, inte annullerad.

HTTP/1.1 200 OK
Content-Length: 866
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd
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"
    }
}