Freigeben über


Economy v2-Abonnements

Mit Abonnements können Sie zeitbasierten Zugriff auf dauerhafte Güter gewähren. Elemente innerhalb eines Abonnements werden nach dem Aufruf von GetInventoryItems in den Bestand eines Spielers entpackt.

Notiz

Dieser Artikel konzentriert sich auf virtuelle Abonnements oder die Abonnements, die in Ihrem Spiel enthalten sind. Wir verfügen über ein neues Feature in der privaten Vorschau , mit dem Sie virtuelle Abonnements mit realen Marketplaces verknüpfen können, indem Sie die Inventory Redeem-APIs von PlayFab verwenden. Hier finden Sie weitere Informationen zur Vorgehensweise:

Um auf dieses Feature zuzugreifen, senden Sie eine E-Mail mit PFEconomyPreviews@microsoft.com dem Betreff PlayFab Mobile Subscriptions zusammen mit Ihrer PlayFab-Titel-ID. Wir aktivieren das Feature in Ihrer Umgebung.

Erstellen eines Abonnements

Um ein Abonnement zu erstellen, müssen Sie zunächst sicherstellen, dass Sie Katalogelemente, Währungen oder benutzergenerierte Inhalte (User Generated Content, UGC) veröffentlicht haben, die in Ihrem Spiel zugänglich/gekauft werden sollen. Informationen zum Einrichten Ihres Katalogs vor dem Erstellen eines Abonnements finden Sie unter Economy V2-Schnellstart.

  1. Navigieren Sie zu Economy>Catalog (V2).

  2. Wählen Sie auf der Registerkarte Abonnementsdie Option Neues Abonnement aus.

Das obige Holiday Skins Pass-Abonnement gewährt zwei Elemente Glowing Gloves und Shiny Shoes zu zwei Preispunkten für zwei verschiedene Gültigkeitsdauern. Der erste Preissatz von 5 Diamanten und 10 Gold stellt sicher, dass das Abonnement eine Woche lang gültig ist, während der zweite Preissatz von 7 Diamanten und 12 Gold sicherstellt, dass das Abonnement einen Monat lang gültig ist. Beachten Sie, dass die Dauer in Sekunden festgelegt werden muss.

Dadurch sollte eine Antwort zurückgegeben werden, dass das Abonnement erstellt und veröffentlicht wurde:

{
  "code": 200,
    "status": "OK",
    "data": {
        "Item": {
            "Id": "{{NewlyCreatedSubscriptionItemID}}",
            "Type": "subscription",
            "AlternateIds": [],
            "Title": {
                "NEUTRAL": "Holiday Skins Pass"
            },
    ...
}

Abonnements innerhalb des Bestands

Abonnements werden in der Inventarsammlung des Spielers mit einer ID, Einer StackId, einem Ablaufdatum und Anzeigeeigenschaften vorhanden sein. Alles in einem Abonnement kann wie jedes andere Element mithilfe von Hinzufügen, Subtrahieren und Aktualisieren usw. geändert werden.

Sie können getInventoryItems mit einem Typfilter verwenden, um alle Abonnements abzurufen, die ein Player derzeit besitzt.

{ 
    "Entity": {
        "Type": "title_player_account", 
        "Id": "ID" 
    }, 
    "CollectionId": "default", 
    "Filter": "type eq 'subscription'"
}

**Sample Response**

{
    "code": 200,
    "status": "OK",
    "data": {
        "Items": [
            {
                "Id": "{{SubscriptionID}}",
                "StackId": "default",
                "DisplayProperties": {},
                "Type": "subscription",
                "ExpirationDate": "2023-08-27T23:59:59Z"
            }
        ],
        "ETag": "1/Mw=="
    }
}

Ein nicht abgelaufenes Abonnement wird zur Lesezeit entpackt. Die entpackten Elemente verfügen über die erwartete ID, eine eindeutige zusammengesetzte StackId, die aus der Abonnement-ID und der StackId des Abonnements besteht. Der Betrag wird auf den in der Abonnementelementreferenz konfigurierten Betrag festgelegt. Diese entpackten Elemente sind unveränderlich und können nicht mit Hinzufügen, Subtrahieren, Aktualisieren usw. geändert werden.


{ 
    "Entity": {
        "Type": "title_player_account", 
        "Id": "ID" 
    }, 
    "CollectionId": "default", 
    "Filter": "StackId eq 'SubscriptionItemID:default'"
}

**Sample Response**

{
    "code": 200,
    "status": "OK",
    "data": {
        "Items": [
            {
                "Id": "{{GlowingGlovesItemID}}",
                "StackId": "{{SubscriptionID:default}}",
                "DisplayProperties": {},
                "Amount": 1,
                "Type": "catalogItem"
            },
            {
                "Id": "{{ShinyShoesItemID}}",
                "StackId": "{{SubscriptionID:default}}",
                "DisplayProperties": {},
                "Amount": 1,
                "Type": "catalogItem"
            }
        ],
        "ETag": "1/NQ=="
    }
}

Das Auspacken des Abonnements erfolgt vor dem Filtern und Auslagern, sodass Abonnementelemente wie alle anderen Elemente in einer Sammlung zuverlässig gefiltert und ausgelagert werden können.

Sie können UpdateInventoryItems, AddInventoryItems und SubtractIventoryItems verwenden, um das Ablaufdatum eines Abonnements für einen Spieler zu aktualisieren.

UpdateInventoryItems Der API-Aufruf aktualisiert hier das Ablaufdatum des Abonnements.

{
   "Entity": { 
      "Type": "title_player_account", 
      "Id": "{{ID}}" 
    }, 
  "CollectionId": "default", 
   "Item": { 
        "Id": "{{SubscriptionID}}", 
        "StackId": "default",
        "DisplayProperties": {},
        "Type": "subscription",
        "ExpirationDate": "2023-03-27T23:59:59Z" 
    } 
} 

AddInventoryItems Api-Aufruf hier erweitert das Ablaufdatum durch Erhöhen des DurationInSeconds-Parameters.

{
    "Entity": { 
        "Type": "title_player_account", 
        "Id": "{{ID}}" 
    }, 
    "CollectionId": "default", 
    "Item": { 
        "Id": "{{SubscriptionID}}" 
    }, 
    "DurationInSeconds":2628000 
} 

SubtractInventoryItems Der API-Aufruf verringert hier das Ablaufdatum, indem der DurationInSeconds-Parameter reduziert wird.

{
    "Entity": { 
        "Type": "title_player_account", 
        "Id": "{{ID}}" 
    }, 
    "CollectionId": "default", 
    "Item": { 
        "Id": "{{SubscriptionID}}" 
    }, 
    "DurationInSeconds":60 
}