> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Economy v2 訂閱

> 建立 PlayFab Economy v2 虛擬訂閱，以授與耐久性遊戲內項目的限時存取權，並管理週期性的玩家權益。

訂閱可讓您授與耐久性商品的限時存取權。呼叫 [GetInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/get-inventory-items) 之後，訂閱內的項目會在玩家的庫存中解除封裝。

<Note>
  本文著重於虛擬訂閱，也就是存在於您遊戲內的訂閱。
</Note>

## 建立訂閱

若要建立訂閱，您必須先確定您已發佈想要在遊戲中可存取/可購買的[目錄項目](/zh-TW/services/playfab/economy-monetization/economy-v2/quickstart#step-3---publish-an-item-to-the-catalog)、[貨幣](/zh-TW/services/playfab/economy-monetization/economy-v2/quickstart#part-2-inventory-and-virtual-currencies-overview)或[使用者產生的內容 (UGC)](/zh-TW/services/playfab/economy-monetization/economy-v2/ugc/quickstart)。若要在建立訂閱之前設定您的目錄，請參閱 [Economy V2 快速入門](/zh-TW/services/playfab/economy-monetization/economy-v2/quickstart)

### GameManager

1. 瀏覽至 **Economy** > **Catalog (V2)**。
2. 在 **Subscriptions** 索引標籤下，選取 **New Subscription**。

### API

您可以使用 [CreateDraftItem](https://learn.microsoft.com/en-us/rest/api/playfab/economy/catalog/create-draft-item) API 來建立訂閱。

建立訂閱的 `CreateDraftItem` API 要求範例：

```json theme={null}
{
  "Item": {
   "Type": "subscription",
    "Title": {
      "NEUTRAL": "Holiday Skins Pass"
    },
    "StartDate": "2023-03-07T00:01:00.0000000Z",
    "ItemReferences":[
      {
        "Id":"{{GlowingGlovesItemID}}",
        "Amount": 1
      }, 
      {
        "Id":"{{ShinyShoesItemID}}", 
        "Amount": 1
      }
    ],
        "PriceOptions": {
          "Prices": [
        {
            "UnitDurationInSeconds":604800,
              "Amounts": [
                {
                    "ItemId": "{{DiamondItemID}}",
                    "Amount": 5
                },
                {
                    "ItemId": "{{GoldItemID}}",
                    "Amount": 10
                }
                ]
        },      
        {
            "UnitDurationInSeconds":2628000,
              "Amounts": [
                {
                    "ItemId": "{{DiamondItemID}}",
                    "Amount": 7
                },
                {
                    "ItemId": "{{GoldItemID}}",
                    "Amount": 12
                }
                ]
        } ]
          }
        },
  "Publish": true
}
```

***

上述 Holiday Skins Pass 訂閱會授與兩個項目 `Glowing Gloves` 和 `Shiny Shoes`，並以兩個價格點對應兩個不同的有效期間。第一組價格為 5 顆鑽石和 10 金幣，可確保訂閱有效期為一週；第二組價格為 7 顆鑽石和 12 金幣，可確保訂閱有效期為一個月。請注意，時間長度必須以秒為單位設定。

這應該會傳回訂閱已建立並發佈的回應：

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

***

## 庫存中的訂閱

訂閱會出現在玩家的庫存集合中，並具有 ID、StackId、到期日和顯示屬性。訂閱中的所有內容都可以像任何其他項目一樣，使用 Add、Subtract 和 Update 等進行修改。

您可以使用 [GetInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/get-inventory-items) 搭配 Type 篩選，擷取玩家目前擁有的所有訂閱。

```json theme={null}
{ 
    "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=="
    }
}
```

未到期的訂閱會在讀取時解除封裝。解除封裝的項目具有預期的 ID，以及由訂閱 ID 和訂閱的 StackId 組成的唯一複合 StackId。數量會設定為訂閱項目參考中所設定的數量。這些解除封裝的項目是不可變的，無法使用 Add、Subtract、Update 等進行修改。

```json theme={null}

{ 
    "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=="
    }
}
```

訂閱解除封裝會在篩選和分頁之前進行，因此訂閱項目可以像集合中的任何其他項目一樣，可靠地進行篩選和分頁。

您可以使用 [UpdateInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/update-inventory-items)、[AddInventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/add-inventory-items) 和 [SubtractIventoryItems](https://learn.microsoft.com/en-us/rest/api/playfab/economy/inventory/subtract-inventory-items) 來更新玩家訂閱的到期日。

此處的 `UpdateInventoryItems` API 呼叫會更新訂閱的到期日。

```json theme={null}
{
   "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 呼叫會藉由增加 DurationInSeconds 參數來延長到期日。

```json theme={null}
{
    "Entity": { 
        "Type": "title_player_account", 
        "Id": "{{ID}}" 
    }, 
    "CollectionId": "default", 
    "Item": { 
        "Id": "{{SubscriptionID}}" 
    }, 
    "DurationInSeconds":2628000 
} 
```

此處的 `SubtractInventoryItems` API 呼叫會藉由減少 DurationInSeconds 參數來縮短到期日。

```json theme={null}
{
    "Entity": { 
        "Type": "title_player_account", 
        "Id": "{{ID}}" 
    }, 
    "CollectionId": "default", 
    "Item": { 
        "Id": "{{SubscriptionID}}" 
    }, 
    "DurationInSeconds":60 
} 
```


## Related topics

- [目錄概觀](/zh-TW/services/playfab/economy-monetization/economy-v2/catalog/catalog-overview.md)
- [什麼是 PlayFab Economy？](/zh-TW/services/playfab/economy-monetization/economy-what-is.md)
- [Economy V2 目標優惠](/zh-TW/services/playfab/economy-monetization/economy-v2/player-segmented-monetization/targeted-offers.md)
- [Economy 第 2 版 (V2) 常見問題集](/zh-TW/services/playfab/economy-monetization/economy-v2/faq.md)
- [Economy V2 限制](/zh-TW/services/playfab/economy-monetization/economy-v2/limits.md)
