Flutter In-App-Purhcase 패키지의 매우 심각한 문제.
반응형

안드로이드 인앱 정기 구독 결제를 구현하며 생긴 일이다.
 
플러터에는 플러터 공식 팀이 제공하는 인앱결제 패키지가 있다.
 
https://pub.dev/packages/in_app_purchase

 

in_app_purchase | Flutter package

A Flutter plugin for in-app purchases. Exposes APIs for making in-app purchases through the App Store and Google Play.

pub.dev

 
 결론부터 말하면  버그라고 하기엔 뭐하고 상당히 잘못 만든 패키지이다. 그 괴물 같던 구글의 개발자도 사람인건지...

패키지와 구글플레이콘솔을 연결하면 결제상품을 가져는 오는데 이름이 모두 똑같이 온다

정기결제 페이지

구글의 앱 정기결제 페이지이다. 이름 및 ID가 있고 이 밑에 요금제가 있다.


플레이스토어의 정기결제 페이지를 타고 들어가면 보이는 기본 요금제 및 혜택.

 

이 기본 요금제의 이름을 활용해서 로직을 짜야한다.

1회성 인앱상품 결제 외에
정기결제가 있고 월구독, 연구독 등의 선택지를 고객에게 줄 수 있다.

영어로는 Plan 이라고 한다.
monthly plan, yearly plan 등 구독형 상품을 결제해본 사람이라면 알 것 이다..

그런데 플러터 공식 팀의 인앱 결제 패키지를 사용해서 상품목록을 코드로 불러오면


맨 처음 정기결제 이름만 올뿐 세부 요금제가 무엇인지 알 수가 없다. 활용해야할 기본 요금제의 이름이 안온다.

 

심지어 세부 정보를 볼 수 있는 객체가 있는데 이걸로 구분을 하려고 했더니

각 객체에 해당하는 정보만 오는 게 아니라 모든 기본 요금제의 정보가 들어있는 객체가 온다.

 

위 사진을 보면 활성화된 기본요금제가 4개인데 불러와지는 4개의 객체가 모두 정기결제 제목인 '넷플릭스 구독플랜'으로 이름이 오고

각 객체의 세부정보에는 모두 ['매월 정기결제 플랜', '한꺼번에 1년치 결제', '1개월 플랜', '3개월 플랜'] 들어있다.

또..예를 들어 듀오링고에는 슈퍼 요금제와 맥스 요금제가 나뉘어 있다.
그럼 슈퍼와 맥스가 이름이 나와야하는데
"듀오링고 결제"만 나온다는 얘기이다.

 


난 처음에 내가 할 줄 모르는 줄 알았다.

구분을 할 수 있는 요소라고는 가격 뿐인데 

만약 게임에서 보석이 꾸준히 들어오는 1만원짜리 아이템구독상품과 하트가 꾸준히 채워지는 1만원짜리 구독상품이 있으면 이 둘을 구분할 수가 없다는 얘기다.

 

제대로 정합성을 보장하려면 정기결제를 여러개 만들어서 각각 하나의 기본 요금제만 두어야한다.

 

 

외국의 개발자들도 공식 라이브러리 치고는 너무 불편한 라이브러리라고 계속 건의하는 중..

 

https://stackoverflow.com/questions/72561135/flutter-in-app-purchase-get-all-plans-inside-subscription/78514249#78514249

 

Flutter [in_app_purchase] Get all plans inside subscription

I'm using the in_app_purchase package, but I only can get one plan inside the subscriptions I have 3 subscriptions: Basic subscription Premium subscription Enterprise subscription And inside each

stackoverflow.com

 

https://github.com/flutter/flutter/issues/110909

 

[in_app_purchase][android]: Add Google Play Offers support · Issue #110909 · flutter/flutter

Google Play introduced offers to subscriptions. but apparently there is still no support to this feature in the in_app_purchase plugin, or at least this is what I could conclude after going through...

github.com

 

https://github.com/flutter/flutter/issues/150348

 

[Android: In-App-Subscription] Get all plans from a Subscription and buy them. · Issue #150348 · flutter/flutter

Steps to reproduce As im implementing In App Subscription in my app with Googles New subscription model thats desiged like: Subscriptoin1 >> Base plan1 >> Base plan2 I'm trying to extract these bas...

github.com

 

너무 충격적인 개발 경험이다

반응형