Notice
Recent Posts
Recent Comments
Link
관리 메뉴

설.현.아빠

Google Play In App Billing 연동 중 나오는 에러들 본문

안드로이드/In-App

Google Play In App Billing 연동 중 나오는 에러들

설.현.아빠 2013. 2. 25. 13:45

http://westwoodforever.blogspot.kr/2012/11/google-play-in-app-billing.html

 

안드로이드 인앱 결제 작업중에 나온 오류를 따로 정리해봅니다.


결제 요청을 하는 순간 '항목을 찾을 수 없습니다.' 오류가 나오고 확인을 누르면 바로 제대로 된 인앱 제품 정보가 나오는 증상이 있습니다. 이 에러는 Google Play Billing Library에 있는 Dungeons Sample를 연동해서 나온 오류입니다.

Dungeons.java의 소스중 onClick 함수에서 Buy버튼을 클릭했을 때 mBillingService.requestPurchase를 처리하는 if, else if 문 문제입니다. 딱 보시면 mBillingService.requestPurchase 리턴값에 따라 한번 더 mBillingService.requestPurchase 처리 될 수 있는 구조입니다.

///< 구독이 아니면
if( mManagedType != Managed.SUBSCRIPTION )
{
if( !mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_INAPP, mPayloadContents) )
{
showDialog(DIALOG_BILLING_NOT_SUPPORTED_ID);
}
}
///< 구독
else
{
if( !mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_SUBSCRIPTION, mPayloadContents) )
{
showDialog(DIALOG_SUBSCRIPTIONS_NOT_SUPPORTED_ID);
}
}
전 이렇게 수정 후 해결했습니다.


'이 버전의 애플리케이션에서는 Google Play를 통한 결제를 사용할 수 없습니다. 자세한 내용은 도움말 센터를 참조하세요.' 애플리케이션 오류가 발생할 수 있습니다. 확인을 누르면 아래와 같은 로그가 발생합니다.

MarketBillingService.sendResponseCode: Sending response RESULT_DEVELOPER_ERROR for request xxxxxxxxxxxxxx to org.xxxx.game.

Google Play 개발자 센터에 등록한 APK와 기기에서 개발 테스트 중인 App의 버젼이 달라서 생기는 문제라고 합니다. 하긴 지금 개발자 센터에는 Billing 퍼미션만 추가된 서명된 APK가 올라가 있고, 현재 이클립스로 개발 테스트 중인 App은 Dungeons Sample을 붙여서 연동 개발 테스트까지 하고 있으니 더 개발된 상태죠.

그래서 서명된 APK를 새로 만들어 개발자 센터에도 올리고 디바이스에 APK를 넣어서 ASTRO 파일 관리자로 폰에 설치를 합니다. 이클립스에서 실행하는 것은 안됩니다. 테스트는 약 1시간 정도 기다린 후 해보시기 바랍니다. 새로 올린 APK가 바로 갱신 안되는 듯 싶네요. 그리고 다시 실행 후 구입을 시도하면 잘 되거나 다른 에러가 발생합니다.


'요청하신 항목은 구매할 수 없습니다.' 구입할 수 없음 에러가 발생할 수 있습니다. 확인을 클릭 누르면 아래와 같은 로그가 발생합니다.

MarketBillingService.sendResponseCode: Sending response RESULT_ITEM_UNAVAILABLE for request xxxxxxxxxxxxxxxx to org.xxxx.game.



 

판매자 계정과 기기에 로그인 된 구글 계정이 같아서 생기는 것이라는 말도 있습니다만 저는 회사 개발자 계정으로 테스트 중이라 제 계정과 같을리는 없죠. 개발자 센터 -> 프로필 수정에 보면 테스트 계정이라는 항목이 있는데, 여기에 제 구글 계정을 넣고 저장을 한 후 해봤지만 역시나 안되는군요.

제 경우에는 추가 된 인앱 제품을 게시를 안해서 생긴 문제였습니다. 테스트 중인 인앱 제품을 '게시완료' 후 테스트 하니 결제 진행이 되네요. 물론 App은 '게시 안됨'이어도 됩니다.

Comments