-
[게임 개발] 안드로이드 인앱결제 구현중 아이템 consume이 안되어서 추가 결제가 막힌 상황 해결법2015.03.26 PM 03:52
LINK : //stackoverflow.com/questions/19195864/android-inapp-billing-error-response-7item-already-owned
티스토어 버전을 먼저 업데이트 하고, 구글 영어 버전을 추가로 업데이트 했습니다.
(구글 한국 버전은 아직 못했습니다... ㅠㅠ)
Google play services 에 포함된 IAB 모듈을 게임에 적용하는데,
간만에 해서 그런지 뭔가 잘 안되더군요.
이것 저것 수정해가며 결제창까지는 띄웠는데.
아뿔사!
아이템 결제 완료까지는 되었는데 아이템 처리 과정에서 fail이 뜨네요.
(나중에 확인해보니 base64EncodedPublicKey 를 한국 버전 key로 넣은 문제였습니다)
아이템 결제이후 fail이 뜨면서 해당 item의 consume이 처리되지 않은 상황이 되었구요.
이후로는 아예 해당 아이템 결제창도 안뜨게 되었습니다.
해당 아이템이 결제만 되고 소모되지 않은 상태여서 재결제가 안되는 상황인거죠.
개발하다보면, 특히 처음 인앱 결제를 구현하다보면 자주 맞닥드리게 되는 상황인데요.
Consumption 때문에 테스트 진행을 못하는 분들이 꽤 많으신 걸로 압니다.
개발자 커뮤니티에 종종 글 올라오는 것을 봤었거든요.
깊은 한숨을 내쉬고... 마음을 가다듬은 후 구글신님께 신탁 요청을 드렸습니다.
이런 저런 글들을 보다 광명의 빛이 담겨있는 포스트를 찾았네요. (해당 포스트는 관련링크에 올렸습니다)
역시나 해답은 스택오버플로우 포럼에 있더군요. 하하
* 2주 후면 consumption 안된 아이템이 자동으로 풀린다
라는 글도 있고요
* Consumption 안된 아이템을 조회해서 풀어주는 코드
를 작성해서 올린 분도 계시네요. (구현해보진 않았습니다)
제일 아래에 간략하게 쓰인 글이 제가 원하던 best 해결책이었는데요.
=========================================
You can use Google Play "FINANCIAL REPORTS"->"Visit your merchant account for more details"->"Orders" to View and Cancel any order to "consume it". Then you need to restart your device. =)
=========================================
요약하자면
1. 구글 개발자 페이지(Developer Console) 실행
2. 좌측 메뉴에서 보고서 클릭
3. 보고서 페이지의 [재무 보고서] 메뉴를 선택
4. 재무 보고서 페이지 제일 하단에 있는 링크(자세히 알아보려면 판매자 계정을 방문하세요) 클릭
(혹은 https://wallet.google.com/merchant 링크를 바로 실행해서 구글 월렛 판매자 센터로 들어오셔도 됩니다)
5. 좌측 메뉴에서 주문 클릭 (월렛 들어오면 기본으로 보여지는 페이지입니다)
6. Consum 안된 아이템 결제 내역을 클릭합니다.
7. 화면 우측에 해당 아이템 결제 세부 내역이 보여지고, [주문 취소] 버튼이 보입니다.
8. [주문 취소] 버튼을 클릭하고 사유를 선택, 메시지를 입력합니다.
9. 주문 취소가 되면 테스트하는 휴대폰을 재부팅합니다.
10. 이제 앱을 실행하면 문제가 발생했던 아이템을 정상적으로 재구매할 수 있습니다.
이 방법 못 찾았으면 2주동안 기다리거나...
아니면 consume 안된 아이템들을 긁어와서 강제 사용하는 코드를 짜맞추고 있었을 거 같네요.
하여간에 가장 간단한 해결책을 찾아서 다행입니다.
안드로이드 결제 준비하시는 동료분들께서도 도움이 되면 좋겠네요.
댓글 : 5 개
- Godwish
- 2015/03/26 PM 04:07
음.. 그냥 구글 월렛 들어가서 결제 취소 하면 되는데요.
- Godwish
- 2015/03/26 PM 04:08
음 글이 길어서 끝까지 안 봤네요~
- 지나주
- 2015/03/26 PM 04:29
그렇죠. 해결책의 핵심은 결제 취소하고 나서 폰 리붓하는 거였습니다. ㅎㅎㅎ
결제 취소한 후에 (휴대폰 리붓 안한 상태에서) 아이템 재구매하려고 하면 여전히 막힌것처럼 나오더군요.
결제 취소한 후에 (휴대폰 리붓 안한 상태에서) 아이템 재구매하려고 하면 여전히 막힌것처럼 나오더군요.
- paemato
- 2015/03/26 PM 04:15
그거 소모가 안되는건 아마 구매관련 처리코드자체에 문제가 있는걸로 아는데,
주문취소는 임시방편이고 근본적인 해결을 안해주시면
라이브 환경에서 결제불가유저가 발생할 수 있는걸로....
주문취소는 임시방편이고 근본적인 해결을 안해주시면
라이브 환경에서 결제불가유저가 발생할 수 있는걸로....
- 지나주
- 2015/03/26 PM 04:33
IAB v2 에서 v3 넘어오면서 인앱 상품을 반드시 "관리되는 제품"을 사용하도록 권장하고 있죠. "관리되는 제품"때문에 결제 구매시 comsumption 시켜줘야 하는데... 저도 인앱결제 스터디하고 구현하면서 왜 이렇게 불편하게 하는지 잘 모르겠더라구요...
user error : Error. B.