smart_pay 0.1.2 
smart_pay: ^0.1.2 copied to clipboard
Unified Flutter payments toolkit supporting Stripe Payment Sheets and Payment Links with automatic URL generation, manual handling, and provider-driven configuration.
Smart Pay
Unified payments for Flutter with a single API. Configure Stripe today, more gateways soon, and present a unified checkout experience.
What is Smart Pay? #
Smart Pay gives you one simple API to accept payments from multiple providers. Add Stripe today, PayPal tomorrow - your code stays the same.
// Same code works for Stripe, PayPal, Razorpay, etc.
final result = await SmartPay.checkout(PayRequest(
  amountMinorUnits: 1999, // $19.99
  currency: 'USD',
));
Quick Start #
1. Install #
dependencies:
  smart_pay: ^1.0.0
2. Choose Your Payment Methods #
| Payment Method | Status | Documentation | 
|---|---|---|
| Stripe | ✅ Available | → Stripe Setup Guide | 
| PayPal | 🔄 Coming Soon | - | 
| Razorpay | 🔄 Coming Soon | - | 
| Apple Pay | 🔄 Coming Soon | - | 
| Google Pay | 🔄 Coming Soon | - | 
3. Basic Setup #
import 'package:smart_pay/smart_pay.dart';
void main() {
  // Configure your payment methods
  SmartPay.configure(SmartPayConfig(
    providers: [
      // Add your payment methods here
      // See method-specific guides above ↗️
    ],
  ));
  
  runApp(MyApp());
}
4. Show Payment Methods #
// Shows available payment methods to user
SmartPayMethods(
  store: SmartPay.store,
  onMethodSelected: (method) {
    print('User selected: ${method.displayName}');
  },
)
5. Process Payment #
// Process payment with selected method
final result = await SmartPay.checkout(PayRequest(
  amountMinorUnits: 1999, // $19.99
  currency: 'USD',
  description: 'Your Order #1234',
));
if (result.success) {
  print('Payment successful!');
} else {
  print('Payment failed: ${result.message}');
}
How It Works #
🎯 Smart Platform Detection #
- Mobile (iOS/Android): Uses in-app payment UI when possible
 - Web/Desktop: Uses secure payment pages
 - Override: Force specific payment method if needed
 
🔧 Simple Configuration #
- Add payment methods in 
SmartPay.configure() - Each method auto-detects the best mode for your platform
 - Customize names, settings per method
 
🎨 Easy UI Integration #
SmartPayMethods()- Shows payment optionsSmartPay.checkout()- Processes payments- Works with your existing UI/UX
 
Platform Support #
| Platform | SDK Mode | URL Mode | Notes | 
|---|---|---|---|
| iOS | ✅ | ✅ | SDK preferred | 
| Android | ✅ | ✅ | SDK preferred | 
| Web | ❌ | ✅ | URL only | 
| macOS | ❌ | ✅ | URL only | 
| Windows | ❌ | ✅ | URL only | 
| Linux | ❌ | ✅ | URL only | 
Examples #
- Basic Example - Simple payment setup
 - Stripe Guide - Complete Stripe integration
 - Platform Detection - How auto-detection works
 
Need Help? #
- 📖 Setup Guides - Step-by-step instructions
 - ❓ FAQ - Common questions
 - 🐛 Issues - Report bugs
 - 💬 Discussions - Get help
 
What's Next? #
- Choose your payment method from the table above
 - Follow the setup guide for your chosen method
 - Add more methods as needed - they all work the same way!
 
Made with ❤️ for Flutter developers