UMyStoveSDKObject::StoveSDKStartPurchase
함수로 상품 구매를 시작합니다.
// 입력 파라미터
// const TArray<FStoveOrderProduct> Products : 주문 상품 정보
// ProductSize : 주문상품 갯수
FStoveResult UMyStoveSDKObject::StoveSDKStartPurchase(const TArray<FStoveOrderProduct> Products, const int ProductSize)
{
/*Add the 'walkthrough' codes here.*/
FStoveResult ErrorResult = Super::StoveSDKStartPurchase(Products, ProductSize);
if (ErrorResult.Result == StovePCResult::STOVE_PC_NO_ERROR)
{
//성공처리
}
return ErrorResult;
}
UMyStoveSDKObject::StoveSDKStartPurchase
함수가 정상적으로 처리되면 OnStartPurchase
콜백이 호출됩니다.
콜백에 전달되는 FStovePurchase
구조체에는 상품 구매에 대한 메타정보가 포함되어 있습니다.
이때 게임은 외부브라우저(또는 내장브라우저)를 통해 1회용 결재 URL을 탐색합니다.
void UMyStoveSDKObject::OnStartPurchase(FStovePurchase Purchase)
{
/*Add the 'walkthrough' codes here.*/
OnLog("[OnStartPurchase]");
OnLog(" TransactionMasterNo : %I64d", Purchase.TransactionMasterNo);
OnLog(" TempPaymentUrl : %s", *(Purchase.TempPaymentUrl));
OnLog(" PurchaseProgress : %d", Purchase.PurchaseProgress);
if (Purchase.PurchaseProgress == 1)
{
FWindowsPlatformProcess::LaunchURL(*(Purchase.TempPaymentUrl), nullptr, nullptr);
}
else if(Purchase.PurchaseProgress == 2)
{
//구매완료 처리 (e.g. 구매완료 메세지 박스)
}
}
UMyStoveSDKObject::StoveSDKStartPurchase'
함수가 실행중에 오류가 발생하면 OnError
콜백이 호출됩니다.
FStoveError
구조체의 ExternalError 필드를 통해 외부 오류를 확인할 수 있습니다.
일반적으로 UMyStoveSDKObject::StoveSDKStartPurchase
함수 호출에 대해 OnError
콜백이 호출되면 게임은 실패에 대한 메세지를 게임 사용자에게 노출합니다.
아래 표는 게임 사용자에게 표시 할 메세지에 대한 가이드를 함께 제시합니다.
ExternalError | 설명 | 유저 메시지 (예시) |
---|---|---|
500 | Internal Server Error | 일시적인 현상이거나 네트워크 원인으로 서비스가 원활하지 않습니다. |
50001 | 상점이 존재하지 않거나, 점검 중 | 서비스 점검 중이거나, 존재하지 않는 서비스 입니다. |
50002 | 상품이 존재 하지 않거나 판매 불가능 상품 | 상품 상태로 인하여 구매하실 수 없는 상품입니다. |
50003 | 비 전시 상품 | 현재 판매하고 있지 않은 상품입니다. |
50004 | 판매 기간이 아닌 상품 | 상품 판매 기간이 아닙니다. |
50005 | 상품 가격이 불일치(상품 가격이 변경 되었을 경우) | 상품 가격 정보가 변경되었습니다. |
50009 | 구매 가능 한 회원 별 판매 개수를 초과 | 1인 당 구매 가능 개수를 초과 하였습니다. |
50010 | 구매 가능 한 총 판매 개수를 초과 | 준비 된 수량이 모두 판매 완료 되었습니다. |
50031 | 구매 수량이 '0’ | 구매하실 수량을 1개 이상 입력해 주세요. |
999999 | 정의되지 않은 오류 | 기타 오류로 서비스가 원활하지 않습니다. |