본문 바로가기
웹&앱 개발

안드로이드 인앱결제 "이미 보유하고 있는 아이템입니다" 에러 해결 방법

by choice1219 2024. 11. 20.
반응형

안녕하세요. VeriLog입니다.

 

react-native-iap을 사용해서 인앱결제를 구현할 때, 안드로이드에서 "이미 보유하고 있는 아이템입니다."라는 에러를 마주했습니다.

아무리 구글링 해도 해결 방법이 안나오더라구요.

그래서 이렇게 글로 남깁니다.

 

const purchase: any = result; // 트랜잭션 결과
        if (purchase) {
            try {
                const ackResult = await finishTransaction({ purchase, isConsumable: true }); // 트랜잭션을 명시적으로 완료
                console.log('Transaction finished:', ackResult);
            } catch (err) {
                console.error('Error finishing transaction:', err);
            }
        }

 

위의 코드처럼, finishTransaction이 결제 완료 후 소모하는 로직인데,

이때, isConsumable: true 구문을 넣어주셔야 "이미 보유하고 있는 아이템입니다"라는 에러가 뜨지 않습니다.

IOS에서는 isConsumable이 없어도 잘 돌아가는데, 안드로이드는 저 구문이 꼭 있어야하더라구요.

 

여러분들은 저처럼 삽질하지 마시길 바랍니다.

반응형