안녕하세요. 개발자 문서에 건의 드리고 싶습니다~!
이번에 영수증 검토 기능을 사용하다가,
결제 성공의 메세지를 보기 전에 게임이 종료된 경우.
게임 재접속시
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
이 함수가 실행되면서 409를 리턴 하더라구요.
논리상 맞긴 한데, Error 로 처리되는게 맞나 싶습니다.
(fake 결제를 어떤 방식으로 하는지 제가 잘 몰라서 그럴수도…)
현재는 아래와 같이 처리하였습니다.
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{
string productId = args.purchasedProduct.definition.id;
BackendReturnObject validation =
Backend.Receipt.IsValidateGooglePurchase(args.purchasedProduct.receipt, "purchase");
if (validation.IsSuccess())
{
GrantReward(productId);
m_StoreController.ConfirmPendingPurchase(args.purchasedProduct);
return PurchaseProcessingResult.Complete;
}
// 이미 검증한 영수증 처리(보통 결제 결과를 보기전에 게임을 종료한 경우)
if (validation.GetStatusCode() == "409")
return PurchaseProcessingResult.Complete;
Binder.UIManager.NetworkErrorPopupPanel.Show(NetworkErrorType.Unknown, $"영수증 검증 실패: {productId}");
return PurchaseProcessingResult.Pending;
}
해당 부분의 처리가 제 경험상으로는 필수적으로 보여져서 개발자 문서에도 언급되어야 하지 않나하는
생각으로 건의 드려봅니다.
관련 링크