mad_pay 2.2.12 icon indicating copy to clipboard operation
mad_pay: ^2.2.12 copied to clipboard

Mad Pay will help you make payments through Apple Pay and Google Pay

Flutter Mad Pay

Easy integration with Google Pay and Apple Pay for your flutter app.

Apple Pay API Documentation.

Google Pay API Documentation.

SDK Features #

  • Pay with Apple Pay and Google Pay
  • Checking payment availability on your device
  • Checking the user's active cards

Installing #

Add this to your package's pubspec.yaml file:

dependencies:
  mad_pay: <lastles>
For Android
  • In the file [project_name]/android/app/build.gradle, set minSdkVersion to at least version 21.
  • In the file [project_name]/android/app/build.gradle, add the line proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' to buildTypes.release
  • Create the proguard-rules.pro file in the [project_name]/android/app folder and add the line -keep class * extends com.google.protobuf.GeneratedMessageLite { *; }
An example can be found in: example/android/app

Usage #

To start using payment you need to get Merchant Identifier:

Use without buttons (for your design) #

final MadPay pay = MadPay();

// To find out if payment is available on this device
await pay.checkPayments();

// If you need to check if user has at least one active card
await pay.checkActiveCard(
  paymentNetworks: <PaymentNetwork>[
    PaymentNetwork.visa,
    PaymentNetwork.mastercard,
  ],
);

// To pay with Apple Pay or Google Pay
await pay.processingPayment(
  PaymentRequest(
    google: GoogleParameters(
      gatewayName: 'Your Gateway',
      gatewayMerchantId: 'Your id',
      merchantId: 'example_id',
    ),
    apple: AppleParameters(
      merchantIdentifier: 'Your id',
    ),
    currencyCode: 'USD',
    countryCode: 'US',
    paymentItems: <PaymentItem>[
      PaymentItem(name: 'T-Shirt', price: 2.98),
      PaymentItem(name: 'Trousers', price: 15.24),
    ],
    paymentNetworks: <PaymentNetwork>[
      PaymentNetwork.visa,
      PaymentNetwork.mastercard,
    ],
  )
);

Using with buttons (by guideline) #

Apple Pay button Widget (Native):

ApplePayButton(
  style: ApplePayButtonStyle.automatic,
  type: ApplePayButtonType.buy,
  request: PaymentRequest.apple(
    apple: AppleParameters(
      merchantIdentifier: 'Your id',
    ),
    currencyCode: 'USD',
    countryCode: 'US',
    paymentItems: <PaymentItem>[
      PaymentItem(name: 'T-Shirt', price: 2.98),
      PaymentItem(name: 'Trousers', price: 15.24),
    ],
  ),
  onPaymentResult: (PaymentResponse? req) {
    // ...
  },
  onError: (Object? e) {
    // ...
  },
);

Google Pay button Widget (Flutter):

GooglePayButton(
  type: GooglePayButtonType.plain,
  request: PaymentRequest.google(
    google: GoogleParameters(
      gatewayName: 'Your Gateway',
      gatewayMerchantId: 'Your id',
      merchantId: 'example_id',
    ),
    currencyCode: 'USD',
    countryCode: 'US',
    paymentItems: <PaymentItem>[
      PaymentItem(name: 'T-Shirt', price: 2.98),
      PaymentItem(name: 'Trousers', price: 15.24),
    ],
  ),
  onPaymentResult: (PaymentResponse? req) {
    // ...
  },
  onError: (Object? e) {
    // ...
  },
);

Adaptive Pay button Widget (uses ApplePayButton and GooglePayButton):

AdaptivePayButton(
  applePayButton: ApplePayButton(...),
  googlePayButton: GooglePayButton(...),
),

Example #

The Example is in the corresponding folder

Payment Network matrix #

Payment NetworkiOSAndroid
Visa++
MasterCard++
American Express++
Interac++
Discover++
JCB++
Maestro+
Electron+
Mir Pay++
Cartes Bancarries+
Union Pay+
EftPos+
Elo+
ID Credit+
Mada+
Private Label+
Quic Pay+
Suica+
V Pay+
Dankort+
Nanaco+
Waon+
Girocard+
BARCODE+

Additional resources #

Take a look at the following resources to manage your payment accounts and learn more about the APIs for the supported providers:

Google PayApple Pay
PlatformsAndroidiOS
DocumentationOverviewOverview
ConsoleGoogle Pay Business ConsoleDeveloper portal
ReferenceAPI referenceApple Pay API
Style guidelinesBrand guidelinesButtons and Marks