새로나온 InappPurchase 기능을 사용하면서
테스트를 위해 구매를 하고 환불 처리를 한 후
지웠다가 새로 깔아도
구매가 되있다고(Purchase) 상태로 뜨는데요
이게 서버에서 늦게 처리가 되는 것도 아니고
몇일 전에 환불 처리 한 항목도 구매됬다고 나옵니다.
환불 되었는지를 확인 하고 갱신 하는 방법은 없나요?
새로 나온 api는 구매상태가 관리되는 인앱 아이템밖에 안되는 것으로 알고 있습니다.
샘플에서 프리미엄이든 가스던 일단 같은 로직으로 구매를 하고
가스는 구입하고 바로 consume처리를 해버려서 다시 재구매가 가능한거고
프리미엄은 consume처리를 안하고 계속 그 구매 상태를 유지시켜서 체크하는 것으로 알고 있어요.
저 같은 경우는 앱 내 포인트 구매 같은거라 consume을 해버려도 상관이 없는데
계속 구매 상태를 유지해야 하는 아이템의 경우는 좀 난감하긴 하겠네요
아무래도 버그가 아닐까 싶습니다.
아니면 Azel님과 제가 뭔가를 누락하고 있다거나...;;
서버체크 방식으로 바뀌었는데 consume 을 하는 순간이 중요합니다.
consume 은 unmanaged type item (소멸성) 만 호출하도록 되어 있는데..
서버에서 final notify 가 떨어지면 서버에서 소멸됩니다.
타이밍은 ActivityForResult ~ onActivityResult 를 통해서 들어왔을때,
혹은 인앱 생성시 startSetup 을 통해서 이전 구매 내역을 체크할때 이고
등록된 purchaseFinishedListener 를 통해서 결과값이 서버에서 들어옵니다.




저도 같은 경험을 했는데요
심지어 구매 상태도 0(purchased)으로 나오더군요 2가 환불 상태로 알고 있는데
이게 버그인건지는 잘 모르겠지만 여튼
그냥 해당 아이템 consume 처리 해주면 소유한 아이템이 아니라면서 에러가 나고
그 뒤로는 안나오더라구요