Economy v2 구독
구독을 통해 내구재에 대한 시간 기반 액세스 권한을 부여할 수 있습니다. 구독 내의 항목은 GetInventoryItems를 호출한 후 플레이어의 인벤토리에서 압축 해제됩니다.
참고 항목
이 문서에서는 가상 구독 또는 게임 내에 있는 구독에 중점을 둡니다. PlayFab의 Inventory Redeem API를 사용하여 가상 구독을 실제 마켓플레이스에 연결할 수 있는 비공개 미리 보기의 새로운 기능이 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 다음과 같습니다.
이 기능에 액세스하려면 PlayFab 타이틀 ID와 함께 PlayFab 모바일 구독이라는 제목의 전자 메일을 PFEconomyPreviews@microsoft.com(으)로 보내면 사용자 환경에서 이 기능을 사용하도록 설정하겠습니다.
구독 만들기
구독을 생성하려면 먼저 게임에서 액세스/구매할 수 있도록 카탈로그 항목, 통화 또는 사용자 생성 콘텐츠(UGC)를 게시했는지 확인해야 합니다. 구독을 만들기 전에 카탈로그를 설정하려면 Economy V2 빠른 시작을 참조하세요.
Economy>카탈로그(V2)로 이동합니다.
구독 탭에서 새 구독을 선택합니다.
위의 Holiday Skins Pass 구독은 두 개의 서로 다른 유효 기간 동안 두 가지 가격으로 Glowing Gloves
및 Shiny Shoes
두 항목을 부여합니다. 5개의 다이아몬드와 10개의 골드로 구성된 첫 번째 가격 세트는 구독이 1주일 동안 유효함을 보장하고 두 번째 가격 세트인 다이아몬드 7개와 12개의 골드는 구독이 한 달 동안 유효함을 보장합니다. 시간 기간은 초 단위로 설정해야 합니다.
이 항목은 구독이 생성되고 게시되었다는 응답을 반환해야 합니다.
{
"code": 200,
"status": "OK",
"data": {
"Item": {
"Id": "{{NewlyCreatedSubscriptionItemID}}",
"Type": "subscription",
"AlternateIds": [],
"Title": {
"NEUTRAL": "Holiday Skins Pass"
},
...
}
인벤토리 내 구독
구독은 ID, StackId, 만료 날짜 및 표시 속성과 함께 플레이어의 인벤토리 컬렉션에 표시됩니다. 추가, 빼기 및 업데이트 등을 사용하여 다른 항목과 마찬가지로 구독의 모든 항목을 수정할 수 있습니다.
유형 필터와 함께 GetInventoryItems를 사용하여 플레이어가 현재 가지고 있는 모든 구독을 검색할 수 있습니다.
{
"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가 있습니다. 금액은 구독 항목 참조에 구성된 금액으로 설정됩니다. 이렇게 압축 해제된 항목은 변경할 수 없으며 추가, 빼기, 업데이트 등을 사용하여 수정할 수 없습니다.
{
"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, AddInventoryItems 및 SubtractIventoryItems를 사용하여 플레이어의 구독 만료 날짜를 업데이트할 수 있습니다.
UpdateInventoryItems
여기서 API 호출은 구독의 만료 날짜를 업데이트합니다.
{
"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 매개 변수를 늘려 만료 날짜를 연장합니다.
{
"Entity": {
"Type": "title_player_account",
"Id": "{{ID}}"
},
"CollectionId": "default",
"Item": {
"Id": "{{SubscriptionID}}"
},
"DurationInSeconds":2628000
}
SubtractInventoryItems
여기서 API 호출은 DurationInSeconds 매개 변수를 줄여 만료 날짜를 줄입니다.
{
"Entity": {
"Type": "title_player_account",
"Id": "{{ID}}"
},
"CollectionId": "default",
"Item": {
"Id": "{{SubscriptionID}}"
},
"DurationInSeconds":60
}