added stripe

This commit is contained in:
Kima 2024-02-25 22:55:25 +01:00
parent 25bec328fa
commit c5456d442f
5 changed files with 73 additions and 19 deletions

View File

@ -13,6 +13,7 @@ import 'package:flutter/services.dart';
import 'package:refilc_mobile_ui/screens/error_screen.dart'; import 'package:refilc_mobile_ui/screens/error_screen.dart';
import 'package:refilc_mobile_ui/screens/error_report_screen.dart'; import 'package:refilc_mobile_ui/screens/error_report_screen.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:flutter_stripe/flutter_stripe.dart' as stripe;
// import 'package:firebase_core/firebase_core.dart'; // import 'package:firebase_core/firebase_core.dart';
// import 'firebase_options.dart'; // import 'firebase_options.dart';
@ -32,6 +33,10 @@ void main() async {
BackgroundFetch.registerHeadlessTask(backgroundHeadlessTask); BackgroundFetch.registerHeadlessTask(backgroundHeadlessTask);
// initialize stripe key
stripe.Stripe.publishableKey =
'pk_live_51OWSV2HW2TAy5tA6EELuXtpG6ombCCrOFbvz2fDwZlqLT42Ql64CfxptWem8NjN1dhnE6jaI77TRsVZbF8gfd29Q00OGMQRGqm';
// Run App // Run App
runApp(App( runApp(App(
database: startup.database, database: startup.database,

View File

@ -77,6 +77,7 @@ dependencies:
extension_google_sign_in_as_googleapis_auth: ^2.0.12 extension_google_sign_in_as_googleapis_auth: ^2.0.12
maps_launcher: ^2.2.0 maps_launcher: ^2.2.0
google_fonts: ^6.1.0 google_fonts: ^6.1.0
flutter_stripe: ^10.0.0
dev_dependencies: dev_dependencies:
flutter_lints: ^3.0.1 flutter_lints: ^3.0.1

View File

@ -1,3 +1,4 @@
import 'package:flutter_stripe/flutter_stripe.dart' as stripe;
import 'package:refilc/theme/colors/colors.dart'; import 'package:refilc/theme/colors/colors.dart';
import 'package:refilc_plus/providers/premium_provider.dart'; import 'package:refilc_plus/providers/premium_provider.dart';
import 'package:refilc_plus/ui/mobile/premium/activation_view/activation_view.dart'; import 'package:refilc_plus/ui/mobile/premium/activation_view/activation_view.dart';
@ -20,25 +21,29 @@ class GithubLoginButton extends StatelessWidget {
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16.0)), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16.0)),
child: InkWell( child: InkWell(
borderRadius: BorderRadius.circular(14.0), borderRadius: BorderRadius.circular(14.0),
onTap: () { onTap: () async {
if (premium.hasPremium) { // if (premium.hasPremium) {
premium.auth.refreshAuth(removePremium: true); // premium.auth.refreshAuth(removePremium: true);
ScaffoldMessenger.of(context).showSnackBar(SnackBar( // ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text( // content: Text(
"reFilc+ támogatás deaktiválva!", // "reFilc+ támogatás deaktiválva!",
style: TextStyle( // style: TextStyle(
color: AppColors.of(context).text, // color: AppColors.of(context).text,
fontWeight: FontWeight.bold, // fontWeight: FontWeight.bold,
fontSize: 18.0), // fontSize: 18.0),
), // ),
backgroundColor: Theme.of(context).scaffoldBackgroundColor, // backgroundColor: Theme.of(context).scaffoldBackgroundColor,
)); // ));
return; // return;
} // }
Navigator.of(context).push(MaterialPageRoute(builder: (context) { // Navigator.of(context).push(MaterialPageRoute(builder: (context) {
return const PremiumActivationView(); // return const PremiumActivationView();
})); // }));
bool initFinished = await initPaymentSheet(context);
if (initFinished) {
await stripe.Stripe.instance.presentPaymentSheet();
}
}, },
child: Padding( child: Padding(
padding: const EdgeInsets.symmetric(vertical: 12.0), padding: const EdgeInsets.symmetric(vertical: 12.0),
@ -110,4 +115,46 @@ class GithubLoginButton extends StatelessWidget {
), ),
); );
} }
Future<bool> initPaymentSheet(BuildContext context) async {
try {
// 1. create payment intent on the server
final data = await _createPaymentSheet();
// 2. initialize the payment sheet
await stripe.Stripe.instance.initPaymentSheet(
paymentSheetParameters: stripe.SetupPaymentSheetParameters(
// Set to true for custom flow
customFlow: false,
// Main params
merchantDisplayName: 'reFilc',
paymentIntentClientSecret: data['paymentIntent'],
// Customer keys
customerEphemeralKeySecret: data['ephemeralKey'],
customerId: data['customer'],
// Extra options
applePay: const stripe.PaymentSheetApplePay(
merchantCountryCode: 'HU',
),
googlePay: const stripe.PaymentSheetGooglePay(
merchantCountryCode: 'HU',
testEnv: true,
),
style: ThemeMode.system,
),
);
return true;
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Error: $e')),
);
rethrow;
}
}
Future<Map<String, String>> _createPaymentSheet() async {
Map<String, String> asdasd = {};
return asdasd;
}
} }

View File

@ -64,6 +64,7 @@ dependencies:
uuid: ^4.3.3 uuid: ^4.3.3
maps_launcher: ^2.2.0 maps_launcher: ^2.2.0
google_fonts: ^6.1.0 google_fonts: ^6.1.0
flutter_stripe: ^10.0.0
dev_dependencies: dev_dependencies:
flutter_lints: ^3.0.1 flutter_lints: ^3.0.1

@ -1 +1 @@
Subproject commit 960ab223654209f75b5c412a8f153e69968f7192 Subproject commit c22b3e0de6042e09ef1d3693ef7b02fd73e778c3