본문 바로가기
모바일 개발/유니티

유니티 | IAP 설정과 검증

by KISCH 2020. 3. 7.
반응형

 

 

설정


 

⊢ Service - In App Purchasing 활성화

Import - UnityChannel, UnityPurchasing 폴더 생성됨 (Plugins 폴더)

구글 라이선스 키 입력

∟ Service : Analytics, In-App-Purchasing 활성화

 

 

유니티IAP

 

 

 

구매 영수증


 

Unity IAP은 다음의 키와 값을 포함한 JSON 해시로 제공

Store : 스토어 이름

TransactionID : 스토어가 제공하는 거래 고유 식별자

∟ Payload : 플랫폼에 따라 상이

 

iOS 

iOS버전 >= 7.0 일 경우  base64로 인코딩된 앱 영수증

 

Google Play

⊢ json  : 구글 제공 JSON형식으로 인코딩된 문자열

∟ signature : 구글 제공 JSON 파라미터에 대한 서명

 

 

영수증 검증 : Local Validation


 

사용자가 구매한 컨텐츠가 장치에 이미 존재하는 경우 -> 애플리케이션은 콘텐츠의 해지 여부만 결정

 

암호화 키 난독 처리

Window

->Unity IAP

->IAP Receipt Validation Obfuscator 

-> 암호화 AppleTangle, GooglePlayTangle이라는 두 개의 다른 C# 파일에 저장(Plugings/UnityPurchasing/generated)

 

영수증 검증

⊢ CrossPlatformValidator 클래스 사용

∟ 클래스에 Google Play 공용 키 + Apple 루트 인증서 제공

서명 검증을 통해 영수증 유효성 검사

영수증의 애플리케이션 번들 식별자를 애프리케이션 식별자와 비교

 

Exception

⊢ InvalidBundleid : 식별자 일치하지 않는 경우

⊢ IAPSecurityException : 다른플랫폼에서 생성한 영수증 확인시

∟ MissingStoreSecretException : 비밀 키 제공하지 않은 플랫폼의 영수증을 확인 시도 시

 

스토어별 세부사항

 

raw 상태의 영수증 파싱

 

 

영수증 검증 : Remote Validation


 

서버측 콘텐츠. 구매 이후 콘텐츠 다운. 서버에서 확인

 

 

 

 

반응형

댓글