[flutter] Firebase_core를 사용하여 플러터 앱에서 Firebase 인앱 결제 구현하기

이번에는 플러터(Flutter) 앱에서 Firebase를 사용하여 인앱 결제를 구현하는 방법에 대해 알아보겠습니다. Firebase의 ‘firebase_core’ 패키지를 사용하여 앱에 Firebase를 연동하고, ‘firebase_in_app_purchase’ 패키지를 사용하여 인앱 결제를 처리할 것입니다.

Firebase 설정하기

  1. Firebase 프로젝트 생성 및 앱 추가: Firebase 콘솔에서 새로운 프로젝트를 생성하고, 앱을 추가합니다. 필요한 설정은 Firebase 콘솔에서 제공하는 안내에 따라 진행하면 됩니다.

  2. Flutter 프로젝트에 Firebase 연동 설정하기: Firebase 프로젝트의 구성 파일을 Flutter 프로젝트에 추가해야합니다. 다음 명령어를 이용하여 Firebase를 설정할 수 있습니다.

    $ flutter firebase configure
    
  3. Firebase Core 패키지 추가하기: ‘firebase_core’ 패키지를 추가하여 Firebase Core를 연동합니다. pubspec.yaml 파일에 아래 코드를 추가 후, 패키지를 업데이트하세요.

    dependencies:
      flutter:
        sdk: flutter
      firebase_core: ^1.8.4 # Firebase Core 패키지 버전
    
  4. Firebase 플러그인 추가하기: ‘firebase_core’ 패키지에 이어 Firebase 인앱 결제를 위한 ‘firebase_in_app_purchase’ 패키지를 추가합니다. 마찬가지로, pubspec.yaml 파일에 아래 코드를 추가한 후, 패키지를 업데이트하세요.

    dependencies:
      ...
      firebase_in_app_purchase: ^10.3.2 # Firebase 인앱 결제 패키지 버전
    
  5. Firebase 초기화하기: 앱의 진입 지점인 main() 함수에서 Firebase를 초기화합니다. 다음과 같은 코드를 추가하세요.

    import 'package:firebase_core/firebase_core.dart';
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      runApp(MyApp());
    }
    

인앱 결제 구현하기

이제 Firebase가 설정되었으므로, 인앱 결제를 구현할 수 있습니다.

  1. 구매 플로우 구현하기: 인앱 결제를 위해 사용자에게 상품을 제공하고, 결제 요청을 처리해야합니다. 예를 들어, “상품 목록” 페이지에서 특정 상품을 선택하고 구매 버튼을 누르면 결제 요청이 전송되도록 구현할 수 있습니다.

  2. firebase_in_app_purchase 패키지 사용하기: 결제 요청을 처리하기 위해 ‘firebase_in_app_purchase’ 패키지의 함수를 활용할 수 있습니다. 아래는 간단한 예시입니다.

    import 'package:firebase_in_app_purchase/firebase_in_app_purchase.dart';
    
    Future<void> purchaseProduct(String productId) async {
      try {
        await FirebaseInAppPurchase.instance.requestPurchase(productId);
        // 결제 성공 시 처리할 로직 추가
      } catch (e) {
        // 결제 실패 시 처리할 로직 추가
      }
    }
    

    위 코드에서 productId는 구매할 상품의 식별자입니다.

  3. 상품 정보 확인하기: ‘firebase_in_app_purchase’ 패키지는 구매한 상품의 정보를 제공합니다. 예를 들어, 상품을 구매한 후에 상품 구매 여부를 확인하고 싶을 때 사용할 수 있습니다.

    import 'package:firebase_in_app_purchase/firebase_in_app_purchase.dart';
    
    Future<void> checkPurchasedProducts() async {
      List<PurchasedProduct> purchasedProducts =
          await FirebaseInAppPurchase.instance.getAvailablePurchases();
      // 구매한 상품 목록 확인 및 처리 로직 추가
    }
    

    위 코드에서 purchasedProducts는 구매한 상품의 목록입니다.

마무리

위의 단계를 따라하는 것으로, 플러터 앱에서 Firebase를 사용하여 인앱 결제를 구현할 수 있습니다. Firebase의 ‘firebase_core’와 ‘firebase_in_app_purchase’ 패키지를 활용하여 결제 플로우를 구현하고, 상품 정보를 제공받을 수 있습니다. 이를 바탕으로 앱에서 인앱 결제 기능을 구현해보세요!

더 세부적인 사용법은 Firebase 공식 문서를 참고하시기 바랍니다.