Kündigen eines kommerziellen Marketplace oder eines neuen Commerce-Abonnements mithilfe von Partner Center-APIs

Gilt für: Partner Center

In diesem Artikel wird beschrieben, wie Sie die Partner Center-API verwenden können, um einen kommerziellen Marketplace oder eine neue E-Commerce-Abonnementressource zu kündigen, die der Kunden- und Abonnement-ID entspricht.

Hinweis

Die neuen Commerce-Umgebungen für lizenzbasierte Dienste enthalten zahlreiche neue Funktionen und stehen allen Cloud Solution Providern (CSP) zur Verfügung. Weitere Informationen finden Sie in der Übersicht über neue Commerce-Erfahrungen.

Neue E-Commerce-Abonnements können innerhalb von 7 Tagen gekündigt werden, es sei denn, dies ist gesetzlich vorgeschrieben, wenn der Kauf oder die Verlängerung erfolgt. Nachdem dieses Fenster abgelaufen ist, können Abonnements nicht mehr gekündigt werden, und die API löst einen Fehler aus.

Voraussetzungen

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

  • Eine Kunden-ID (customer-tenant-id). Wenn Sie die ID des Kunden nicht kennen, können Sie sie im Partner Center im Arbeitsbereich Kunden nachschlagen. Wählen Sie den Kunden aus der Kundenliste aus, und wählen Sie dann Konto aus. Suchen Sie auf der Seite Konto des Kunden im Abschnitt Kundenkontoinformationen nach der Microsoft-ID. Die Microsoft-ID entspricht der Kunden-ID (customer-tenant-id).

  • Eine Abonnement-ID.

Partner Center-Methode

So kündigen Sie ein Abonnement für den kommerziellen Marketplace in Partner Center:

  1. Wählen Sie einen Kunden aus.

  2. Wählen Sie das Abonnement aus, das Sie kündigen möchten.

  3. Wählen Sie die Option Abonnement kündigen und dann Übermitteln aus.

C#

So kündigen Sie das Abonnement eines Kunden:

  1. Rufen Sie das Abonnement nach ID ab.

  2. Ändern Sie die Status-Eigenschaft des Abonnements. Informationen zu den Codes für Status finden Sie unter SubscriptionStatus-Enumeration.

  3. Nachdem die Änderung vorgenommen wurde, verwenden Sie Ihre IAggregatePartner.Customers Sammlung, und rufen Sie die ById() -Methode auf.

  4. Rufen Sie die Subscriptions-Eigenschaft auf, gefolgt von der ById() -Methode.

  5. Rufen Sie die Patch()-Methode auf.

// IAggregatePartner partnerOperations;
// var selectedCustomerId as string;
// Subscription selectedSubscription;

selectedSubscription.Status = SubscriptionStatus.Deleted;
var updatedSubscription = partnerOperations.Customers.ById(selectedCustomerId).Subscriptions.ById(selectedSubscription.Id).Patch(selectedSubscription);

Beispiel-Konsolentest-App

Beispiel: Konsolentest-App. Project: PartnerSDK.FeatureSample-Klasse: UpdateSubscription.cs

REST-Anforderung

Anforderungssyntax

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

URI-Parameter

In dieser Tabelle wird der erforderliche Abfrageparameter zum Anhalten des Abonnements aufgeführt.

Name Typ Erforderlich BESCHREIBUNG
customer-tenant-id guid J Eine GUID, die dem Kunden entspricht.
abonnement-id guid J Eine GUID, die dem Abonnement entspricht.

Anforderungsheader

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

Anforderungstext

Im Anforderungstext ist eine vollständige Subscription-Ressource erforderlich. Um Ihr Abonnement zu kündigen, stellen Sie sicher, dass die Status-Eigenschaft auf den Wert von deletedaktualisiert wurde.

Feld Typ Erforderlich BESCHREIBUNG
status string J Status der Abonnements. Optionen können sein: active, , suspendeddeleted

Anforderungsbeispiel

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<subscription-id> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: ec8f62e5-1d92-47e9-8d5d-1924af105f2c
If-Match: <etag>
Content-Type: application/json
Content-Length: 1029
Expect: 100-continue
Connection: Keep-Alive

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "deleted",
    "autoRenewEnabled": false,
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}

REST-Antwort

Wenn die Anforderung erfolgreich ist, gibt diese Methode die gelöschten Abonnementressourceneigenschaften im Antworttext zurück.

Erfolgs- und Fehlercodes der Antwort

Jede Antwort enthält einen HTTP-Statuscode, der Aufschluss darüber gibt, ob der Vorgang erfolgreich war, sowie ggf. zusätzliche Debuginformationen. Verwende ein Tool für die Netzwerkablaufverfolgung, um diesen Code, den Fehlertyp und zusätzliche Parameter zu lesen. Die vollständige Liste findest du unter Partner-API: REST-Fehlercodes.

Antwortbeispiel

HTTP/1.1 200 OK
Content-Length: 1322
Content-Type: application/json; charset=utf-8
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: ec8f62e5-1d92-47e9-8d5d-1924af105f2c
X-Locale: en-US

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "deleted",
    "autoRenewEnabled": false,
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [
        {
            "type": "Full",
            "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
        }
    ],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "links": {
        "product": {
            "uri": "/products/DZH318Z0BXWC?country=US",
            "method": "GET",
            "headers": []
        },
        "sku": {
            "uri": "/products/DZH318Z0BXWC/skus/0001?country=US",
            "method": "GET",
            "headers": []
        },
        "availability": {
            "uri": "/products/DZH318Z0BXWC/skus/0001/availabilities/DZH318Z0BMJX?country=US",
            "method": "GET",
            "headers": []
        },
        "self": {
            "uri": "/customers/5921f00a-32c0-4457-aaa1-e8018c650895/subscriptions/6e7aa601-629e-461b-8933-0898c3cc3c7c",
            "method": "GET",
            "headers": []
        }
    },
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {
        "etag": "",
        "objectType": "Subscription"
    }
}