대답: Yes. 원래 그런 용도이다.
여기서 RNIap.getAvailablePurchases(); 이걸 통해서 나온 purchase 에는 transactionReceipt 가 undefined 인 경우가 있다.
서버로 purchase 를 통으로 보내서 validation 하려다보니 purchase.transactionReceipt 가 undefined 로 없을 경우 dataAndroid 값을 받게 하려고 해서 receipt: purchase.transactionReceipt || purchase.dataAndroid 이렇게 하면 더 안정적인 코드가 될 것 같았다.
아마 옛날에 테스트 한 사항이라 RNIap.getAvailablePurchases(); 에 대한 정확한 의미를 몰라서 잘못 생각했을 수도 있다. 당시 테스트할 때 그냥 availablePurchases 들이 실제로 없는 상태였을 수도 있다. transactionReceipt 가 없는데 dataAndroid 만 있도록 코드가 작성되어 있지 않을 것 같은데... 어쩌면 그럴 수도 있다. 구매 요청을 한게 아니라 과거 값을 가져오는 개념이므로... 일단 과거에 테스트 했던 사항이라 이 부분에 대해서는 정확한 것은 아니다. 그러나 receipt: purchase.transactionReceipt || purchase.dataAndroid 이렇게 한다고 해서 오류나는 것도 아니고 실제로 이러하다면 이렇게 작성하는 것이 더 튼튼한 코드가 될 수 있다.
그리고 요즘은 react-native-iap 에서 RNIap.getAvailablePurchases(); 이것을 직접 사용하기 보다 updateListener 와 함께 RNIap.flushFailedPurchasesCachedAsPendingAndroid() 이런 것을 통해 과거 완료되지 않는 구매에 대한 처리를 한다. 그래도 구독과 같은 구매에 대해서는 RNIap.getAvailablePurchases(); 를 사용해야 할 듯 하다.
어찌되었건 && 와 || 연산자를 이런 용도로 믿고 사용해도 된다.
'REACT & NODE' 카테고리의 다른 글
RN, DP (android, Device Independent Pixel, 밀도 독립 화소), PT(iphone) (0) | 2021.08.16 |
---|---|
ecmascript 와 nodejs 의 문법 기능 지원 확인 방법 (0) | 2021.07.29 |
nested vs normalize vs graphql (0) | 2021.06.30 |
React 의 훅 그리고 Context API 에 대한 추상적인 고찰 (0) | 2021.06.09 |
왜 StyleProp<ViewStyle> 를 쓰는가? 그냥 ViewStyle 이 아니라? (0) | 2021.06.01 |