티스토어 버전을 먼저 업데이트 하고, 구글 영어 버전을 추가로 업데이트 했습니다.
(구글 한국 버전은 아직 못했습니다... ㅠㅠ)
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 안된 아이템들을 긁어와서 강제 사용하는 코드를 짜맞추고 있었을 거 같네요.
하여간에 가장 간단한 해결책을 찾아서 다행입니다.
안드로이드 결제 준비하시는 동료분들께서도 도움이 되면 좋겠네요.