마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

구글 과금 결제후에 인증 처리가 궁굼합니다.

0 추천
구글 과금 결제후에 인증 처리를 할 수 있다고 들었는데요 혹시 아시는 분 계신가요? ㅠㅠ

또 찾다보니 http://blogmonal.blogspot.kr/2013/06/apipurchase-status-api.html

저런 API가 나왔다고 하는데 문제는 횟수 제한이있네요 ㅠㅠ

 

저 방법 이외에는 인증 될 수 있는게 없을까요? ㅠ
박살라 (220 포인트) 님이 2013년 7월 15일 질문

1개의 답변

+1 추천
 
채택된 답변
일단 해당하는 기능이 무엇인지 잘 모르겠습니다만..

과금할때 영수증과 해당 영수증을 퍼블릭키로 사인한 암호 문자열이 같이 옵니다.

일단 해당 처리를 해서 결제를 하게 하면 프리덤등의 결제 크랙을 방지할 수 있습니다.

그리고 서비스를 해보니 뭐 결제가 많이 나오지도 않았지만..

결제가 이루어지면 구글 월렛에 다 기록이 됩니다.

저도 영수증 처리하고 정말 결제가 된 것이 맞는지 확인하러 들어갔지만 바로 반영이 됩니다.

결제후 인증 처리가 명확히 어떤 것을 원하는 것인지 모르겠지만..

일단 영수증 처리하면 확실한 결제 처리를 할 수 있습니다.
Godwish (2,460 포인트) 님이 2013년 7월 17일 답변
박살라님이 2013년 7월 18일 채택됨
정말 감사합니다.^^

헌데 영수처리라 하면 구글쪽에서 영수증 문자열이 내려온단 말씀이신가요?

혹시 어느 부분에서 내려오는지 알 수 있을 까요? ㅠ
onIabPurchaseFinished 와 onConsumeFinished 리스너에서는 아래와 같은 내용 밖에 내려 오지 않는데요 ..ㅠ

어느 부분에서 확인 할수 있는건가요 ㅠ
또 클라이언트에서 영수증을 가지고 Check를 할 수 있는건가요?

해킹때문에 미치겠습니당 ㅠㅠ 도와주세요 ㅠ


PurchaseInfo:{"packageName":"com.test","orderId":"transactionId.android.test.purchased","productId":"android.test.purchased","developerPayload":"","purchaseTime":0,"purchaseState":0,"purchaseToken":"inapp:com.test:android.test.purchased"}
일단 과금 처리 v2 v3 다 영수증이 온다고 들었습니다.
v3의 경우를 설명 드리겠는데요.
구매 처리를 startIntentSenderForResult로 해서
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {        
            int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
            String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
            String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE");
이렇게 받으시면 purchaseData String이 영수증입니다.
이 부분을 퍼블릭키로 사인한게 datasignature기 때문에
서버에 purchaseData와 dataSignature를 보내서 확인하는 것이
영수증을 확인 하는 것이 되겠구요.
정말정말 감사합니다 ^__^

마지막 으로 하나더 여쭤볼게 있습니다 ㅠ
purchaseData와 dataSignature를 게임 서버로 보내서 인증을 한단 말씀인거죠?

그러면 서버에서는 Base64로 디코딩해서 체크하는 건가요?
아니면 구글에서 발급받는 라이선스 키를 이용하여 디코딩하는건가요?

서버에서 인증 하는 방식이 궁굼합니당 ㅠㅠ
그리고 클라이언트에서는 인증 할수 없는지도 궁굼합니당 ㅠㅠ

죄송합니다 자꾸 질문을 드려서 ㅠㅠ

정말 많은 도움이 됐습니다.

정말 감사합니다(--)(__)(--)
purchaseData는 원래 base64와는 상관 없는 json형식의 데이터 입니다.
서버에 보낼때 보통 base64 인코딩을 하기 때문에 서버에서 디코딩을
해야 하겠지만 만약에 인코딩을 하지 않고도 전송할 수 있다면 굳이
디코딩을 안 해도 됩니다.
어제 자바에서 영수증 검사하는 부분과 클라 소스 올려놨으니 참고
하실 부분 있으면 하시구요.
...