1. 상품 구매 상태 확인
UMyStoveSDKObject::StoveSDKConfirmPurchase 함수로 상품 구매 상태를 확인합니다.
// 입력 파라미터
// FString TransactionMasterNo : 거래 고유 마스터 번호(OnStartPurchase 콜백 파라미터 FStovePCPurchase.transactionMasterNo를 통해 취득)
FStoveResult UMyStoveSDKObject::StoveSDKConfirmPurchase(const FString& TransactionMasterNo)
{
/*Add the 'walkthrough' codes here.*/
FStoveResult ErrorResult = Super::StoveSDKConfirmPurchase(TransactionMasterNo);
if (ErrorResult.Result == StovePCResult::STOVE_PC_NO_ERROR)
{
// 성공 처리
}
return ErrorResult;
}
C++
복사
UMyStoveSDKObject::StoveSDKConfirmPurchase 함수가 정상적으로 처리되면 OnConfirmPurchase 콜백이 호출됩니다.
콜백에 전달되는 FStovePurchaseProduct 구조체에는 구매된 상품에 대한 메타정보가 포함되어 있고, status 콜백 파라미터는 상품 구매 상태를 전달합니다.
•
FStovePurchaseProduct.TotalQuantity : 상품 총 판매 수량
•
FStovePurchaseProduct.MemberQuantity : 회원 구매 수량
•
FStovePurchaseProduct.GuidQuantity : Guid 구매 수량(상품 구매 주체[CharacterNo/Guid/MemberNo]의 구매 수량)
별도의 게임서버가 없는 게임의 경우 구매 결과가 성공이라면 게임은 아이템을 지급할 수도 있습니다.
게임서버가 있는 게임의 경우 게임서버가 구매에 대한 알림을 받을 수 있고 이때 아이템을 지급할 수도 있습니다.
void UMyStoveSDKObject::OnConfirmPurchase(int Size, FStovePurchaseProduct* PurchaseProducts, bool Status, FString ShopKey)
{
/*Add the 'walkthrough' codes here.*/
OnLog("[OnConfirmPurchase]");
OnLog(" Status : %s", Status ? TEXT("true") : TEXT("false"));
OnLog(" ShopKey : %s", *(ShopKey));
OnLog(" PurchaseProduct size : %d", Size);
for (int i = 0; i < Size; i++, PurchaseProducts++)
{
OnLog(" -> Index: %d", i);
OnLog("---------------------------------------------- --------");
OnLog(" CategoryId : %s", *(PurchaseProducts->CategoryId));
OnLog(" ProductId : %I64d", PurchaseProducts->ProductId);
OnLog(" TotalQuantity : %d", PurchaseProducts->TotalQuantity);
OnLog(" MemberQuantity : %d", PurchaseProducts->MemberQuantity);
OnLog(" GuidQuantity : %d", PurchaseProducts->GuidQuantity);
}
}
C++
복사
Reference
위 샘플코드에서 함수에서 FString shopKey는StoveSDKIAPInit 함수로 호출하는 YOUR_SHOP_KEY와 동일한 값입니다.
shopKey를 입력 파라메터로 YOUR_SHOP_KEY를 보내야 합니다.
UMyStoveSDKObject::OnConfirmPurchase 함수가 실행중에 오류가 발생하면 OnError 콜백이 호출됩니다.
FStoveError 구조체의 ExternalError 필드를 통해 외부 오류를 확인할 수 있습니다.
ExternalError | Description |
500 | Internal Server Error
⇒ 스토브 담당자에게 문의 부탁드립니다. |
999999 | 정의되지 않은 오류
⇒ 스토브 담당자에게 문의 부탁드립니다. |