Flutter 앱에 Stripe 결제 시스템을 iOS 및 Android 모두에 통합하는 방법을 단계별로 설명합니다. 📱
flutter_stripe 패키지를 사용하여 결제 기능을 구현하며, 최신 버전 사용을 권장합니다. 📦
Android 환경 설정에는 최소 SDK 버전 21 이상, Kotlin 1.8.0 이상, styles.xml 테마 변경, MainActivity.kt에서 FlutterFragmentActivity 사용, proguard-rules.pro 추가 및 gradle.properties 설정이 포함됩니다. 🤖
iOS 환경 설정은 Podfile에서 배포 대상(deployment target)을 13 이상으로 설정하고, Info.plist에 카메라 사용 설명(NSCameraUsageDescription)을 추가하여 카드 스캔 기능을 활성화합니다. 🍎
Stripe API 통신을 위해 dio 또는 http와 같은 HTTP 요청 패키지가 필요합니다. 🌐
Stripe 계정 생성 후 대시보드에서 Publishable Key와 Secret Key를 확보해야 하며, 초기에는 테스트 모드를 활용합니다. 🔑
중요 보안 경고: Secret Key는 클라이언트 측 코드에 직접 저장해서는 안 되며, 프로덕션 환경에서는 반드시 백엔드 서버를 통해 안전하게 처리해야 합니다. (본 튜토리얼에서는 학습 목적으로만 클라이언트 측에 저장) ⚠️
결제 흐름은 StripePaymentService를 통해 결제 의도(Payment Intent)를 생성하고, 금액은 센트 단위로 변환하여 전달하며, Stripe API 엔드포인트로 POST 요청을 보냅니다. 💸
결제 시트 초기화(initPaymentSheet) 및 표시(presentPaymentSheet)를 통해 사용자에게 카드 정보 입력 UI를 제공하고 결제를 완료합니다. 💳
Stripe에서 제공하는 유효한 테스트 카드 정보를 사용하여 결제 기능을 쉽게 테스트할 수 있습니다. ✅