moyasar 2.0.2
moyasar: ^2.0.2 copied to clipboard
Accept payments in your Flutter app with ease by using Moyasar. With this SDK, you can quickly and safely accept payments through Apple Pay and Credit Card (with managed 3DS step).
example/lib/main.dart
import 'package:coffee_flutter/widgets/payment.dart';
import 'package:flutter/material.dart';
import 'package:moyasar/moyasar.dart';
import 'widgets/coffee.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
home: CoffeeShop(),
);
}
}
class CoffeeShop extends StatefulWidget {
const CoffeeShop({super.key});
@override
State<CoffeeShop> createState() => _CoffeeShopState();
}
class _CoffeeShopState extends State<CoffeeShop> {
final paymentConfig = PaymentConfig(
publishableApiKey: 'pk_test_r6eZg85QyduWZ7PNTHT56BFvZpxJgNJ2PqPMDoXA',
amount: 100, // SAR 1
description: 'order #1324',
metadata: {'size': '250g'},
creditCard: CreditCardConfig(saveCard: false, manual: false),
applePay: ApplePayConfig(
merchantId: 'merchant.mysr.fghurayri',
label: 'Blue Coffee Beans',
manual: true)
);
void onPaymentResult(result) {
if (result is PaymentResponse) {
showToast(context, result.status.name);
switch (result.status) {
case PaymentStatus.paid:
// handle success.
break;
case PaymentStatus.failed:
// handle failure.
break;
case PaymentStatus.authorized:
// handle authorized
break;
default:
}
return;
}
// handle other type of failures.
if (result is ApiError) {}
if (result is AuthError) {}
if (result is ValidationError) {}
if (result is PaymentCanceledError) {}
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
resizeToAvoidBottomInset: true,
body: Center(
child: SizedBox(
width: MediaQuery.of(context).size.width * 0.9,
child: ListView(
children: [
const CoffeeImage(),
PaymentMethods(
paymentConfig: paymentConfig,
onPaymentResult: onPaymentResult,
),
],
),
),
));
}
}
void showToast(context, status) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(
"Status: $status",
style: const TextStyle(fontSize: 20),
),
));
}