2011-03-01 5 views
8

사용자가 Android 마켓에서 구입 한 각 앱을 사용하여 Google 서버 중 하나에서 서비스를 활성화하고 사용자가 실제로 앱을 구매했음을 확인할 수 있도록하고 싶습니다.앱 자체에서 구입 한 Android 앱에 대한 Google Checkout 주문 ID를 얻을 수 있나요?

Google Checkout의 알림 기록 API를 사용하여 Google Checkout 주문 ID 상태를 Google 서버에서 쿼리 할 수 ​​있습니다.

이제 문제는 앱에서 Checkout 주문 ID를 얻는 방법을 모른다는 것입니다.

새로운 인앱 구매 API를 사용하면 인앱 구매에 대해 Checkout 주문 ID를 얻을 수 있지만 앱 구매에는 사용할 수 없습니다.

답변

5

앱 구입 확인을위한 더 나은 해결책은 Market Licensing Verification Service을 사용하는 것입니다.

이 라이브러리의 목적은 사용자가 문제의 앱을 실제로 구매했음을 앱이 알릴 수있게하는 것입니다.

외부 서버에서 트랜잭션을 확인하려면 this blog post의 "신뢰할 수있는 서버로 라이센스 유효성 검사 오프로드"절의 기술을 사용할 수 있습니다.

본질적으로 ResponseData 클래스에 들어있는 라이센스 서버 응답의 사본을 서명과 함께 온라인 서버에 보내야합니다. 그런 다음 서버는 사용자에게 라이센스가 부여되었는지 확인할 수 있습니다.

라이센스 응답에 암호가 서명되었으므로 서버는 Android 마켓 게시자 콘솔에 저장된 공개 RSA 키를 사용하여 라이센스 응답이 변조되지 않았는지 확인할 수 있습니다.

+1

대답이 대답으로 업데이트되었습니다. –

+0

Thanks Reto! 이 솔루션은 매우 좋습니다! 그것에 착수하기 시작했습니다! –

+1

내 라이브러리가 PHP가 포함 된 신뢰할 수있는 서버의 라이센스 유효성 검사에 유용 할 수 있습니다. http://code.google.com/p/android-market-license-verification/ –

관련 문제