728x90
반응형
Flutter의 인앱 구매(In-App Purchase) 구현 방법
앱 내에서 디지털 상품이나 서비스(예: 프리미엄 기능, 광고 제거, 아이템 등)를 판매하려면 인앱 구매(In-App Purchase) 기능이 필요합니다. Flutter에서는 이를 위해 in_app_purchase 패키지를 제공하며, Google Play와 Apple App Store 모두에서 사용할 수 있습니다.
이 글에서는 Flutter에서 인앱 구매 기능을 구현하는 기본 방법을 소개하고, 실제 코드 예제를 통해 단계별로 설명하겠습니다.
1. 인앱 구매의 유형
Flutter에서 지원하는 인앱 구매의 대표적인 유형은 다음과 같습니다.
- 일회성 구매(Consumable): 소모성 아이템(예: 게임 아이템)
- 비소모성 구매(Non-Consumable): 영구 기능(예: 광고 제거)
- 구독형 구매(Subscription): 주기적인 결제(예: 월간 프리미엄)
이제 Flutter에서 이를 구현하기 위한 패키지를 설치하고 설정하는 방법을 알아보겠습니다.
2. in_app_purchase 패키지 설치
flutter pub add in_app_purchase
Android의 경우 AndroidManifest.xml에 다음 권한을 추가해야 합니다.
<uses-permission android:name="android.permission.INTERNET"/>
iOS의 경우 Info.plist에 구매 관련 설명을 추가합니다.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
3. 기본적인 인앱 구매 로직 구현
(1) 상품 정보 불러오기
final Set<String> _productIds = {'premium_feature'};
final InAppPurchase _iap = InAppPurchase.instance;
Future<void> _loadProducts() async {
final ProductDetailsResponse response = await _iap.queryProductDetails(_productIds);
if (response.notFoundIDs.isEmpty) {
// 상품 정보를 가져옴
final products = response.productDetails;
// 화면에 표시하거나 저장
}
}
(2) 구매 요청
void _buyProduct(ProductDetails product) {
final PurchaseParam purchaseParam = PurchaseParam(productDetails: product);
_iap.buyNonConsumable(purchaseParam: purchaseParam);
}
(3) 구매 결과 처리
void _listenToPurchaseUpdates() {
_iap.purchaseStream.listen((List<PurchaseDetails> purchases) {
for (var purchase in purchases) {
if (purchase.status == PurchaseStatus.purchased) {
// 구매 성공 처리
} else if (purchase.status == PurchaseStatus.error) {
// 오류 처리
}
}
});
}
4. 실전 적용 시 주의 사항
- 스토어 등록 필수: 실제 결제 테스트를 위해선 Google Play 또는 App Store에 상품 등록 필요
- 구매 영수증 검증: 서버를 통해 구매 유효성 검증을 권장
- 에러 핸들링: 네트워크 오류나 사용자 취소 등 다양한 예외 상황 고려
- 플랫폼별 정책 숙지: Google 및 Apple의 결제 정책 준수 필수
결론
Flutter에서 인앱 구매 기능을 구현하면 유료 기능 제공, 광고 제거, 구독 서비스 등 다양한 수익화 모델을 적용할 수 있습니다.
- in_app_purchase 패키지를 통해 손쉽게 Android/iOS 지원
- 상품 조회, 구매 요청, 구매 처리까지 단계별 구현 가능
- Firebase, 백엔드 서버 연동을 통해 보안 및 데이터 검증 강화
Flutter 앱에 인앱 결제를 도입하여 수익화 전략을 더욱 강화해 보세요!
728x90
반응형
'Flutter' 카테고리의 다른 글
| Flutter의 광고 통합 (0) | 2025.10.28 |
|---|---|
| Flutter의 A/B 테스트(A/B Testing) 구현 방법 및 활용 (0) | 2025.10.26 |
| Flutter의 프로토타이핑(Prototyping) 방법 및 활용 (0) | 2025.10.25 |
| Flutter의 사용자 인터뷰(User Interview) 방법 및 활용 (0) | 2025.10.24 |
| Flutter의 사용자 테스트(User Testing) 방법 및 적용 (0) | 2025.10.23 |