Freigeben über


Stornieren von Softwarekäufen

Sie können die Partner Center-APIs verwenden, um Softwareabonnements und unbefristete Softwarekäufe zu kündigen (sofern diese Käufe innerhalb des Kündigungsfensters ab dem Kaufdatum getätigt wurden). Sie müssen kein Supportticket erstellen, um solche Stornierungen vorzunehmen, und können stattdessen die folgenden Self-Service-Methoden verwenden.

Sie können Softwareabonnements (einschließlich unbefristeter Software) auch mithilfe der ID-API aktualisieren.

Voraussetzungen

  • Anmeldeinformationen, wie unter Partner Center-Authentifizierung beschrieben. Dieses Szenario unterstützt die Authentifizierung mit eigenständigen App- und App+Benutzeranmeldeinformationen.

C#

Um einen Softwareauftrag zu stornieren,

  1. Übergeben Sie Ihre Kontoanmeldeinformationen an die CreatePartnerOperations-Methode, um eine IPartner-Schnittstelle abzurufen, um Partnervorgänge abzurufen.

  2. Wählen Sie eine bestimmte Bestellung aus, die Sie stornieren möchten. Rufen Sie die Customers.ById()-Methode mit der Kunden-ID auf, gefolgt von Orders.ById() mit bestellbezeichner.

  3. Rufen Sie die Get - oder GetAsync-Methode auf, um die Reihenfolge abzurufen.

  4. Legen Sie die Order.Status-Eigenschaft auf cancelled.

  5. (Optional) Wenn Sie bestimmte Zeilenelemente für den Abbruch angeben möchten, legen Sie die Order.LineItems auf eine Liste der Zeilenelemente fest, die Sie abbrechen möchten.

  6. Verwenden Sie die Patch() -Methode, um die Reihenfolge zu aktualisieren.

// 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-Anforderung

Anforderungssyntax

Methode Anforderungs-URI
PATCH {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

URI-Parameter

Verwenden Sie die folgenden Abfrageparameter, um einen Softwareauftrag abzubrechen.

Name Art Erforderlich Beschreibung
customer-tenant-id guid J Der Wert ist ein GUID-formatierter Kundenmandantenbezeichner, der es dem Händler ermöglicht, die Ergebnisse für einen bestimmten Kunden zu filtern, der zum Händler gehört.
order-id string J Der Wert ist eine Zeichenfolge, die den Bezeichner der Reihenfolge angibt, die Sie abbrechen möchten.

Anforderungsheader

Weitere Informationen finden Sie unter Partner Center-REST-Header.

Anforderungstext

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

Beispiel für eine Anfrage

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

REST-Antwort

Bei erfolgreicher Ausführung gibt diese Methode die Bestellung mit abgebrochenen Positionen zurück.

Der Bestellstatus wird entweder als storniert markiert, wenn alle Positionen in der Bestellung storniert oder abgeschlossen werden, wenn nicht alle Positionen in der Bestellung storniert werden.

Erfolgs- und Fehlercodes der Antwort

Jede Antwort enthält einen HTTP-Statuscode, der Erfolg oder Fehler und andere Debuginformationen angibt. Verwenden Sie ein Netzwerkablaufverfolgungstool, um diesen Code, fehlertyp und Parameter zu lesen. Die vollständige Liste finden Sie unter Partner Center-REST-Fehlercodes.

Beispielantwort

In der folgenden Beispielantwort können Sie sehen, dass die Menge der Position zu Null (0) geworden ist. Diese Änderung bedeutet, dass die Position, die für den Abbruch markiert wurde, erfolgreich abgebrochen wurde. Die Beispielbestellung enthält andere Positionen, die nicht storniert wurden, was bedeutet, dass der Status der Gesamtbestellung als abgeschlossen gekennzeichnet wird, nicht storniert wird.

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