This feature is used usually for situations when you need to restore purchased products for users.
1. FetchInventory
StovePC_FetchInventory 함수로 보관함을 조회합니다. 보관함에는 구매가 완료된 상품들이 보관되어 있습니다.
보관함의 구매 완료 상품 리스트를 이용하여 상품 지급 처리를 할 수 있습니다.
보통 게임은 StovePC_ConfirmPurchase 함수를 호출하여 상품 구매 상태를 확인 후 즉시 상품을 지급하지만 오류, 게임 재설치 등의 사유로 지급된 상품 정보가 소실 되었을 경우 보관함 정보를 이용하여 복구 작업에 활용이 가능합니다.
StovePCResult result = StovePC_FetchInventory();
if(result == StovePCResult.NoError)
{
// 성공 처리
}
C++
복사
StovePC_FetchInventory 함수가 정상적으로 처리되면 OnFetchInventory 콜백이 호출됩니다.
콜백에 전달되는 StovePCInventoryItem 구조체에는 구매된 상품에 대한 메타정보가 포함되어 있습니다.
•
StovePCInventoryItem.transactionMasterNo : 거래 고유 마스터 번호
•
StovePCInventoryItem.transactionDetailNo : 거래 고유 상세 번호
•
StovePCInventoryItem.productId : 상품 아이디
•
StovePCInventoryItem.gameItemId : 상품 아이디에 매핑되는 게임 내 아이템 아이디
•
StovePCInventoryItem.productName : 상품명
•
StovePCInventoryItem.quantity : 개별 상품 수량
•
StovePCInventoryItem.thumbnailUrl : 대표 상품 이미지
void OnFetchInventory(const int size, StovePCInventoryItem* inventoryItems)
{
printf("OnFetchInventory");
printf(" - inventoryItem size = %d", size);
for (int i = 0; i < size; i++, inventoryItems++)
{
printf(" - inventoryItems[%d].transactionMasterNo: %lld", i, inventoryItems->transactionMasterNo);
printf(" - inventoryItems[%d].transactionDetailNo: %lld", i, inventoryItems->transactionDetailNo);
printf(" - inventoryItems[%d].productId: %lld", i, inventoryItems->productId);
printf(" - inventoryItems[%d].gameItemId: %s", i, inventoryItems->gameItemId);
wprintf(" - inventoryItems[%d].productName: %s", i, inventoryItems->productName);
printf(" - inventoryItems[%d].quantity: %d", i, inventoryItems->quantity);
printf(" - inventoryItems[%d].thumbnailUrl: %s", i, inventoryItems->thumbnailUrl);
}
}
C++
복사
StovePC_FetchInventory 함수가 실행중에 오류가 발생하면 OnError 콜백이 호출됩니다.
StovePCError 구조체의 ExternalError 필드를 통해 외부 오류를 확인할 수 있습니다.
ExternalError | 설명 |
500 | Internal Server Error
⇒ 스토브 담당자에게 문의 부탁드립니다. |
999999 | 정의되지 않은 오류
⇒ 스토브 담당자에게 문의 부탁드립니다. |