am_flutter_paypal 0.0.1 copy "am_flutter_paypal: ^0.0.1" to clipboard
am_flutter_paypal: ^0.0.1 copied to clipboard

An unofficial Flutter plugin for PayPal Advanced Checkout integration (Approval Only).

am_flutter_paypal #

Important

DISCLAIMER: This is an UNOFFICIAL community-driven Flutter plugin for PayPal Advanced Checkout. It is not developed, maintained, or supported by PayPal.

A Flutter plugin for PayPal Advanced Checkout integration (Approval Only). This plugin handles the secure entry and approval of card details using PayPal's native SDKs.

Repository: https://github.com/Abdul520Mannan/am_flutter_paypal

Security Architecture #

This plugin follows a secure, backend-driven architecture:

  1. No Backend Secrets: Client Secrets and API credentials never exist in the mobile app.
  2. Backend Order Creation: Your server creates the PayPal Order using the Orders v2 API.
  3. Approval Only: This plugin ONLY handles the approveOrder step.
  4. Backend Capture: Your server captures the payment after the plugin returns a success status.

Getting Started #

1. Requirements #

  • Android: minSdk 24+
  • iOS: iOS 14.0+

2. Android Setup #

In your android/build.gradle (or build.gradle.kts):

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

3. iOS Setup #

In your ios/Podfile:

platform :ios, '14.0'

Usage #

1. Initialization #

Initialize the SDK once at app startup or before the checkout screen.

final bool initialized = await AmFlutterPaypal.initialize(
  clientId: "YOUR_PAYPAL_CLIENT_ID",
  environment: PayPalEnvironment.sandbox, // or PayPalEnvironment.live
);

2. Approve Order #

Call your backend to get an orderId, then pass it to the plugin.

final card = PayPalCard(
  cardholderName: "John Doe",
  cardNumber: "1234567812345678",
  expirationMonth: "12",
  expirationYear: "2025",
  securityCode: "123",
);

final result = await AmFlutterPaypal.approveOrder(
  orderId: "ORDER_ID_FROM_BACKEND",
  card: card,
);

if (result.success) {
  print("Payment Approved: ${result.orderId}");
  // Now call your backend to CAPTURE the payment
} else {
  print("Payment Failed: ${result.errorCode} - ${result.message}");
}

Error Codes #

Error Code Description
SDK_NOT_INITIALIZED initialize was not called successfully.
PAYMENT_IN_PROGRESS Another payment approval is already active.
PAYMENT_TIMEOUT No response from native SDK after 60 seconds.
USER_CANCELLED User closed the payment/3DS UI.
INVALID_ARGUMENTS Missing Order ID or card details.

Important Security Note #

Never include your PayPal Secret Key in your Flutter code. Always use a secure backend to interact with PayPal's REST APIs for order creation and capture.

1
likes
150
points
33
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

An unofficial Flutter plugin for PayPal Advanced Checkout integration (Approval Only).

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on am_flutter_paypal

Packages that implement am_flutter_paypal