[Unity 플러그인] 원스토어 인앱결제 업그레이드 하기

Import Unity Package 비교

SDK V17

SDK V19

PURCHASE

Onestore_IapCallbackManager.cs

GaaCallbackManager.cs

Onestore_IapCallManager.cs

GaaCallManager.cs

Onestore_IapResultListener.cs

GaaIapResultListener.cs

Onestore_PurchaseResponse.cs

GaaPurchaseResponse.cs

UTIL

AndroidNative.cs

AndroidNative.cs

UI

Onestore_IapUi.cs

MainUIScript.cs

LogScript.cs

LoadingScript.cs

JSON

global-appstores.json

IapCallManager API 비교

v17 Onestore_IapCallManager.cs

v19 GaaIapCallManager.cs

결제모듈과의 연결

connect

StartConnection

결제모듈과의 연결해제

terminate

EndConnection

지원여부 확인

isBillingSupported

x

인앱 상품 구매

launchPurchaseFlowAsync

LaunchPurchaseFlow

인앱 상품 소비

consume

Consume

인앱 상품 확인

x

Acknowledge

소비되지 않은 상품의 구매내역 (월 자동결제 포함)

getPurchases

QueryPurchases

인앱 상품 상세정보

getProductDetails

QueryProductDetails

월 자동결제 상태 변경

manageRecurringAuto

ManageRecurringProduct

결제 모듈 업데이트 또는 설치

x

LaunchUpdateOrInstallFlow

원스토어 로그인 호출

login

LaunchLoginFlow

마켓 구분 코드 확인

x

GetStoreInfo

인앱결제 초기화 및 연결

v19 SDK 부터는 IapResult.code 의 값으로 성공, 실패 여부를 판단할 수 있습니다.

결제 모듈과 연결하는 방식은 똑같습니다.

Before

After

연결 성공, 실패에 대한 응답은 많이 달라졌습니다.

SDK V17에서는 연결 성공 이후에 isBillingSupported()를 통해 지원 가능여부를 확인해야 했습니다.

하지만, SDK V19부터는 더 이상 지원 가능여부 체크를 하지 않아도 됩니다. SDK 내부에서 자동으로 지원 가능여부를 체크합니다.

IapResult.code 의 값을 확인하려면 PurchaseResponse.ResponseCode 를 참조하세요.

Before

After

상품정보 조회하기

Before

인앱상품 아이디(productId) 배열값과 그에 해당하는 상품타입을 지정합니다. 인앱상품 유형으로는 관리형 상품(ProductType.INAPP), 월정액 상품(ProductType,AUTO)가 있으며, 두 유형을 모두 조회하려면 ProductType.ALL을 입력하면 됩니다.

After

상품정보 조회의 응답 결과값은 GaaIapResultListener의 ProductDetailsSuccessEvent(), ProductDetailsErrorEvent()를 통해 전달 받을 수 있습니다.

Andorid와 Unity와의 통신은 문자열 통신이고 한번에 전달할 수 있는 문자열의 길이가 제한되어 한 번에 한 상품씩 전달됩니다.

그래서, ProductDetailsSuccessEvent(..., ..., int count, int totalCount) 값이 중요합니다.

ex) 상품이 1개인 경우: count = 1, totalCount = 1 상품이 10개인 경우: count = 1, totalCount = 10 ... count = 10, totalCount = 10

Beforede

After

구매 요청하기

인앱 상품 구매를 위해 QueryProductDetails로 얻어온 productId, productType 등을 PurchaseFlowParams 객체에 담아 전달 하도록 변경 되었습니다.

Before

After

LaunchPurchaseFlow() 메서드를 호출하면 원스토어 결제화면이 나타납니다.

그림1. 원스토어 상품 결제 화면

결제에 대한 응답 결과를 받는 부분에 '상품정보 조회하기'와 같은 이유로 count, totalCount가 존재 합니다.

Before

After

구매 확인하기

원스토어 인앱결제 라이브러리 V6(SDK V19)에 새롭게 추가된 API 입니다.

자세한 내용은 'Unity에서 원스토어 인앱결제 사용하기'에서 확인 할 수 있습니다.

관리형 상품 소비하기

Before

After

구매내역 조회하기

구매내역 조회하기의 요청은 큰 변동 사항이 없습니다.

Before

After

다음은 응답 부분이며, '구매 요청하기' 응답과 동일하게 전달 됩니다.

Before

After

월정액 상품 상태 변경하기

SDK V17에서는 개발사에서 직접 recurringState를 판단하여 command 값을 전달 해야 했지만, SDK V19에서는 PurchaseData를 넣으면 SDK에서 판단하여 command 값을 전달 합니다.

Before

Aftere

원스토어 로그인 요청하기

Before

After

원스토어 서비스 설치하기

원스토어 인앱결제 라이브러리 V6(SDK V19)에 새롭게 추가된 API 입니다.

자세한 내용은 'Unity에서 원스토어 인앱결제 사용하기'에서 확인 할 수 있습니다.

스토어 구분 코드 얻기

원스토어 인앱결제 라이브러리 V6(SDK V19)에 새롭게 추가된 API 입니다.

자세한 내용은 'Unity에서 원스토어 인앱결제 사용하기'에서 확인 할 수 있습니다.

Last updated