Ändern des Abrechnungszustands eines Abonnements für einen Benutzer

Verwenden Sie diese Methode in der Microsoft Store-Einkaufs-API, um den Abrechnungsstatus eines Abonnement-Add-Ons für einen bestimmten Benutzer zu ändern. Sie können die automatische Verlängerung eines Abonnements kündigen, verlängern, erstatten oder deaktivieren.

Hinweis

Diese Methode kann nur von Entwicklerkonten verwendet werden, die von Microsoft bereitgestellt wurden, um Abonnement-Add-Ons für Universelle Windows-Plattform-Apps (UWP) erstellen zu können. Abonnement-Add-Ons sind derzeit für die meisten Entwicklerkonten nicht verfügbar.

Die Microsoft.StoreServices-Bibliothek stellt die Funktionalität dieser Methode über die StoreServicesClient.RecurrenceChangeAysnc-API bereit.

Voraussetzungen

Zur Verwendung dieser Methode benötigen Sie:

  • Ein Azure AD-Zugriffstoken, das über den Zielgruppen-URI-Wert verfügt https://onestore.microsoft.com.
  • Ein Microsoft Store-ID-Schlüssel, der die Identität des Benutzers darstellt, der über eine Berechtigung für das Abonnement verfügt, das Sie ändern möchten.

Weitere Informationen finden Sie unter Verwalten von Produktberechtigungen über einen Dienst.

Anforderung

Anforderungssyntax

Methode Anforderungs-URI
POST https://purchase.mp.microsoft.com/v8.0/b2b/recurrences/{recurrenceId}/change

Anforderungsheader

Header type BESCHREIBUNG
Authorization Zeichenfolge Erforderlich. Das Azure AD-Zugriffstoken im Format Bearertoken<>.
Host Zeichenfolge Muss auf den Wert purchase.mp.microsoft.com festgelegt werden.
Content-Length number Die Länge des Anforderungstexts.
Content-Type Zeichenfolge Gibt den Anforderungs- und Antworttyp an. Derzeit wird als einziger Wert application/json unterstützt.

Anforderungsparameter

Name Typ BESCHREIBUNG Erforderlich
recurrenceId Zeichenfolge Die ID des Abonnements, das Sie ändern möchten. Rufen Sie zum Abrufen dieser ID die Get-Abonnements für eine Benutzermethode auf, identifizieren Sie den Antworttexteintrag, der das Abonnement-Add-On darstellt, das Sie ändern möchten, und verwenden Sie den Wert des Felds id für den Eintrag. Ja

Anforderungstext

Feld Typ BESCHREIBUNG Erforderlich
b2bKey Zeichenfolge Der Microsoft Store-ID-Schlüssel , der die Identität des Benutzers darstellt, dessen Abonnement Sie ändern möchten. Ja
Changetype Zeichenfolge Eine der folgenden Zeichenfolgen, die den Typ der Änderung angibt, die Sie vornehmen möchten:
  • Abbrechen: Das Abonnement wird gekündigt.
  • Erweitern: Erweitert das Abonnement. Wenn Sie diesen Wert angeben, müssen Sie auch den parameter extensionTimeInDays einschließen.
  • Erstattung: Erstattet dem Kunden das Abonnement zurück.
  • ToggleAutoRenew: Deaktiviert die automatische Verlängerung für das Abonnement. Wenn die automatische Verlängerung für das Abonnement derzeit deaktiviert ist, bewirkt dieser Wert nichts.
Ja
extensionTimeInDays Zeichenfolge Wenn der changeType-Parameter den Wert Extend aufweist, gibt dieser Parameter die Anzahl der Tage an, für die das Abonnement verlängert werden soll. Ja, wenn changeType den Wert Extend hat; andernfalls nein.

Anforderungsbeispiel

Im folgenden Beispiel wird veranschaulicht, wie Sie diese Methode verwenden, um den Abonnementzeitraum um 5 Tage zu verlängern. Ersetzen Sie den Wert b2bKey durch den Microsoft Store-ID-Schlüssel , der die Identität des Benutzers darstellt, dessen Abonnement Sie ändern möchten.

POST https://purchase.mp.microsoft.com/v8.0/b2b/recurrences/mdr:0:bc0cb6960acd4515a0e1d638192d77b7:77d5ebee-0310-4d23-b204-83e8613baaac/change HTTP/1.1
Authorization: Bearer <your access token>
Content-Type: application/json
Host: https://purchase.mp.microsoft.com

{
  "b2bKey":  "eyJ0eXAiOiJ...",
  "changeType": "Extend",
  "extensionTimeInDays": "5"
}

Antwort

Diese Methode gibt einen JSON-Antworttext zurück, der Informationen zum geänderten Abonnement-Add-On enthält, einschließlich aller felder, die geändert wurden. Im folgenden Beispiel wird ein Antworttext für diese Methode veranschaulicht.

{
  "items": [
    {
      "autoRenew":true,
      "beneficiary":"pub:gFVuEBiZHPXonkYvtdOi+tLE2h4g2Ss0ZId0RQOwzDg=",
      "expirationTime":"2017-06-16T03:07:49.2552941+00:00",
      "id":"mdr:0:bc0cb6960acd4515a0e1d638192d77b7:77d5ebee-0310-4d23-b204-83e8613baaac",
      "lastModified":"2017-01-10T21:08:13.1459644+00:00",
      "market":"US",
      "productId":"9NBLGGH52Q8X",
      "skuId":"0024",
      "startTime":"2017-01-10T21:07:49.2552941+00:00",
      "recurrenceState":"Active"
    }
  ]
}

Antworttext

Der Antworttext enthält die folgenden Daten.

Wert Typ BESCHREIBUNG
autoRenew Boolean Gibt an, ob das Abonnement für die automatische Verlängerung am Ende des aktuellen Abonnementzeitraums konfiguriert ist.
beneficiary Zeichenfolge Die ID des Empfängers der Berechtigung, die diesem Abonnement zugeordnet ist.
expirationTime Zeichenfolge Das Datum und die Uhrzeit des Abonnementablaufs im ISO 8601-Format. Dieses Feld ist nur verfügbar, wenn sich das Abonnement in einem bestimmten Zustand befindet. Die Ablaufzeit gibt in der Regel an, wann der aktuelle Zustand abläuft. Beispielsweise gibt das Ablaufdatum für ein aktives Abonnement an, wann die nächste automatische Verlängerung erfolgt.
expirationTimeWithGrace Zeichenfolge Das Datum und die Uhrzeit, zu der das Abonnement abläuft, einschließlich des Karenzzeitraums im ISO 8601-Format. Dieser Wert gibt an, wann der Benutzer den Zugriff auf das Abonnement verliert, nachdem das Abonnement nicht automatisch verlängert werden konnte.
id Zeichenfolge Die ID des Abonnements. Verwenden Sie diesen Wert, um anzugeben, welches Abonnement Sie ändern möchten, wenn Sie den Abrechnungsstatus eines Abonnements für eine Benutzermethode ändern .
isTrial Boolean Gibt an, ob es sich bei dem Abonnement um eine Testversion handelt.
lastModified Zeichenfolge Das Datum und die Uhrzeit der letzten Änderung des Abonnements im ISO 8601-Format.
market Zeichenfolge Der Ländercode (in zwei Buchstaben ISO 3166-1 Alpha-2-Format), in dem der Benutzer das Abonnement erworben hat.
productId Zeichenfolge Die Store-ID für das Produkt , das das Abonnement-Add-On im Microsoft Store-Katalog darstellt. Eine Beispiel-Store-ID für ein Produkt ist 9NBLGGH42CFD.
skuId Zeichenfolge Die Store-ID für die SKU , die das Abonnement-Add-On im Microsoft Store-Katalog darstellt. Eine Beispielspeicher-ID für eine SKU ist 0010.
startTime Zeichenfolge Das Startdatum und die Startzeit des Abonnements im ISO 8601-Format.
recurrenceState Zeichenfolge Einer der folgenden Werte:
  • Keine: Dies bedeutet ein unbefristetes Abonnement.
  • Aktiv: Das Abonnement ist aktiv, und der Benutzer ist berechtigt, die Dienste zu nutzen.
  • Inaktiv: Das Abonnement hat das Ablaufdatum abgelaufen, und der Benutzer hat die Option zur automatischen Verlängerung für das Abonnement deaktiviert.
  • Gekündigt: Das Abonnement wurde vor dem Ablaufdatum absichtlich gekündigt, mit oder ohne Rückerstattung.
  • InDunning: Das Abonnement befindet sich in der Mahnung (d. a. das Abonnement nähert sich dem Ablauf, und Microsoft versucht, Guthaben zu erwerben, um das Abonnement automatisch zu verlängern).
  • Fehler: Der Mahnzeitraum ist abgelaufen, und das Abonnement konnte nach mehreren Versuchen nicht verlängert werden.

Hinweis:

  • Inaktiv/Abgebrochen/Fehler sind Terminalzustände. Wenn ein Abonnement in einen dieser Zustände eintritt, muss der Benutzer das Abonnement erneut erwerben, um es erneut zu aktivieren. Der Nutzer ist nicht berechtigt, die Dienste in diesen Zuständen zu nutzen.
  • Wenn ein Abonnement gekündigt wird, wird die expirationTime mit dem Datum und der Uhrzeit der Kündigung aktualisiert.
  • Die ID des Abonnements bleibt während der gesamten Lebensdauer unverändert. Sie ändert sich nicht, wenn die Option für die automatische Verlängerung aktiviert oder deaktiviert ist. Wenn ein Benutzer ein Abonnement zurückkauft, nachdem er einen Terminalstatus erreicht hat, wird eine neue Abonnement-ID erstellt.
  • Die ID eines Abonnements sollte verwendet werden, um jeden Vorgang für ein einzelnes Abonnement auszuführen.
  • Wenn ein Benutzer ein Abonnement zurückkauft, nachdem es gekündigt oder beendet wurde, erhalten Sie beim Abfragen der Ergebnisse für den Benutzer zwei Einträge: einen mit der alten Abonnement-ID in einem Terminalstatus und einen mit der neuen Abonnement-ID in einem aktiven Zustand.
  • Es empfiehlt sich immer, sowohl recurrenceState als auch expirationTime zu überprüfen, da Updates von recurrenceState möglicherweise um einige Minuten (oder gelegentlich Stunden) verzögert werden können.
cancellationDate Zeichenfolge Das Datum und die Uhrzeit der Kündigung des Abonnements des Benutzers im ISO 8601-Format.