Untitled

<aside> 💡 This feature is used usually for situations when you need to restore purchased products for users.

</aside>

1. FetchInventory

StovePC.FetchInventory 함수로 보관함을 조회합니다. 보관함에는 구매가 완료된 상품들이 보관되어 있습니다.

보관함의 구매 완료 상품 리스트를 이용하여 상품 지급 처리를 할 수 있습니다.

보통 게임은 StovePC.ConfirmPurchase 함수를 호출하여 상품 구매 상태를 확인 후 즉시 상품을 지급하지만 오류, 게임 재설치 등의 사유로 지급된 상품 정보가 소실 되었을 경우 보관함 정보를 이용하여 복구 작업에 활용이 가능합니다.

StovePCResult result = StovePC.FetchInventory();
if(result == StovePCResult.NoError)
{
    // 성공 처리
}

StovePC.FetchInventory 함수가 정상적으로 처리되면 OnFetchInventory 콜백이 호출됩니다.

콜백에 전달되는 StovePCInventoryItem 구조체에는 구매된 상품에 대한 메타정보가 포함되어 있습니다.

private void OnFetchInventory(StovePCInventoryItem[] inventoryItems)
{
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("OnFetchInventory");
    sb.AppendFormat(" - inventoryItems.Length : {0}" + Environment.NewLine, inventoryItems.Length);
    
    for (int i = 0; i < inventoryItems.Length; i++)
    {
        sb.AppendFormat(" - inventoryItems[{0}].TransactionMasterNo : {1}" + Environment.NewLine, i, inventoryItems[i].TransactionMasterNo.ToString());
        sb.AppendFormat(" - inventoryItems[{0}].TransactionDetailNo : {1}" + Environment.NewLine, i, inventoryItems[i].TransactionDetailNo.ToString());
        sb.AppendFormat(" - inventoryItems[{0}].ProductId : {1}" + Environment.NewLine, i, inventoryItems[i].ProductId.ToString());
        sb.AppendFormat(" - inventoryItems[{0}].GameItemId : {1}" + Environment.NewLine, i, inventoryItems[i].GameItemId);
        sb.AppendFormat(" - inventoryItems[{0}].ProductName : {1}" + Environment.NewLine, i, inventoryItems[i].ProductName);
        sb.AppendFormat(" - inventoryItems[{0}].Quantity : {1}" + Environment.NewLine, i, inventoryItems[i].Quantity.ToString());
        sb.AppendFormat(" - inventoryItems[{0}].ThumbnailUrl : {1}", i, inventoryItems[i].ThumbnailUrl);

        if (i < inventoryItems.Length - 1)
            sb.AppendFormat(Environment.NewLine);
    }

    Debug.Log(sb.ToString());
}

StovePC.FetchInventory 함수가 실행중에 오류가 발생하면 OnError 콜백이 호출됩니다.

StovePCError 구조체의 ExternalError 필드를 통해 외부 오류를 확인할 수 있습니다.

ExternalError 설명
500 Internal Server Error
⇒ 스토브 담당자에게 문의 부탁드립니다.
999999 정의되지 않은 오류
⇒ 스토브 담당자에게 문의 부탁드립니다.