Unity IAP 구매 영수증 처리 가이드
Unity IAP(인앱 결제)는 사용자가 구매한 내역을 확인하기 위한 영수증 정보를 제공하는 기능입니다. 이 문서에서는 Unity IAP를 통해 제공되는 구매 영수증의 구조와 예제에 대해 설명합니다.
구매 영수증 구조
Unity IAP는 구매 영수증을 JSON 해시 형태로 제공합니다. 이 해시는 다음과 같은 키와 값을 포함합니다:
키 | 설명 |
---|---|
Store | Google Play나 Apple App Store와 같은 스토어 이름입니다. |
TransactionID | 스토어가 제공하는 거래 고유 식별자입니다. |
Payload | 플랫폼에 따라 다르며 아래 자세히 설명합니다. |
각 플랫폼별 페이로드 설명
iOS
- iOS 버전이 7 이상인 경우:
페이로드는 Base64로 인코딩된 앱 영수증입니다. - iOS 버전이 7 미만인 경우:
페이로드는SKPaymentTransaction
의transactionReceipt
입니다.
Mac 앱 스토어
- Mac 앱 스토어에서는 페이로드가 Base64로 인코딩된 앱 영수증입니다.
Google Play
- Google Play에서는 페이로드가 JSON 형식으로 제공됩니다. 일반적으로 다음과 같은 키를 포함합니다:
키 | 설명 |
---|---|
json | Google에서 제공하는 JSON 형식으로 인코딩된 문자열입니다. |
INAPP_PURCHASE_DATA | 구매 데이터와 관련된 상세 정보를 포함합니다. |
signature | Google에서 제공하는 JSON 파라미터에 대한 서명입니다. |
INAPP_DATA_SIGNATURE | 인앱 데이터의 유효성을 검증하기 위한 서명입니다. |
유니버설 Windows 플랫폼
- 유니버설 Windows 플랫폼에서는 Microsoft가 지정한 XML 문자열로 제공됩니다.
활용 예제
아래는 Unity IAP에서 구매 영수증을 확인하는 방법에 대한 예제 코드입니다.
void ProcessPurchase(PurchaseEventArgs args)
{
// 구매 영수증에서 필요한 정보를 추출합니다.
string store = args.purchasedProduct.definition.storeSpecificId;
string transactionId = args.purchasedProduct.transactionID;
string payload = args.purchasedProduct.receipt;
// 영수증 처리 로직 추가
Debug.Log($"Store: {store}, Transaction ID: {transactionId}, Payload: {payload}");
}
위 코드는 구매 이벤트가 발생했을 때 호출되는 ProcessPurchase
메서드를 보여줍니다. args
를 통해 구매정보를 추출하고 로그에 출력합니다.
결론
Unity IAP는 각 플랫폼별로 다양한 형식으로 구매 영수증을 제공합니다. 이를 통해 개발자는 사용자 구매 내역을 확인하고, 필요한 후속 조치를 취할 수 있습니다. 이 문서에서 설명한 내용을 바탕으로 Unity IAP의 구매 영수증 처리 기능을 효과적으로 활용해 보세요.