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

인앱결제 테스트 결제건을 환불시켜도 앱에선 계속 결제된 상태로 인식하네요..

0 추천
public void onQueryInventoryFinished(IabResult result, Inventory inv)
        {
            Log.d(TAG, "onQueryInventoryFinished()");

            if (mIabHelper == null) return;
            if (result.isFailure())
            {
                return;
            }

            Log.d(TAG, "inv.hasPurchase(SKU_NO_ADS):" + (inv.hasPurchase(SKU_NO_ADS)));

            if (inv.hasPurchase(SKU_NO_ADS))
            {
                if (mOnPurchasedListener != null)
                    mOnPurchasedListener.onPurchased();
                BaseActivity.mIsNoAds = true;
            }
            else
            {
                //해당 아이템 구매 여부 체크
                Purchase purchase;

                purchase = inv.getPurchase(SKU_NO_ADS);

                if (purchase != null && verifyDeveloperPayload(purchase))
                {
                    //해당 아이템을 가지고 있는 경우.
                    //아이템에대한 처리를 한다.
                    if (mOnPurchasedListener != null)
                        mOnPurchasedListener.onPurchased();
                    BaseActivity.mIsNoAds = true;
                }
                else
                    BaseActivity.mIsNoAds = false;
            }
        }

대강 위와 같은 구조입니다.

중간에 log로 확인해보면 inv.hasPurchase(SKU_NO_ADS)를 true로 반환합니다. 개발자 콘솔의 주문관리 메뉴에 해당 주문건은 확실히 '환불됨'으로 처리되어 있구요. 처리된지 2틀 지났는데도 여전히 저 코드로 확인하면 결제되어있는걸로 나오는군요..

따로 결제 상태를 갱신하는 명령어 같은걸 또 추가해줘야 되는걸까요..? 그런건 아닐거 같은데.. 이유를 모르겠군요..

zent (1,360 포인트) 님이 2019년 5월 25일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...