flutter_adyen_drop_in 0.0.5 copy "flutter_adyen_drop_in: ^0.0.5" to clipboard
flutter_adyen_drop_in: ^0.0.5 copied to clipboard

Flutter plugin to integrate with the Android and iOS libraries of Adyen.

flutter_adyen_drop_in #

Note: This library is not official from Adyen. Note: This plugin is forked from the plugin "flutter_adyen"

Flutter plugin to integrate with the Android and iOS libraries of Adyen. This library enables you to open the Drop-in method of Adyen with just calling one function.

This should support One time payment and recurring payment.

Prerequisites #

Before calling the plugin, make sure to get the payment methods from Adyen or better from your backend. For this, call the a /paymentMethods endpoint:

POST: https://checkout-test.adyen.com/v46/paymentMethods // Version number might be different Payload should contain the merchant account

{
  "merchantAccount": "<YOUR ACCOUNT>"
}

Append your API key and a content-type to the headers:

Content-Type: application/json
X-API-KEY: AQEXXXXXXXXXXXXXXXX

It's not recommended to store the API key in the front-end for security reasons!

####You also need to have the:

  • publicKey (from Adyen)
  • merchantAccount (from Adyen)
  • amount & currency
  • shopperReference (e.g userId)
  • reference (e.g transactionId)

##Setup

###Android Add this in your android/build.gradle

implementation "com.adyen.checkout:drop-in:3.2.1"

And in the AndroidManifest.xml in your application tag add this service, this allows adyen to tell the android app the result of the payment.

<application ...>
    ...
    <service
           android:name="app.startselect.flutter_adyen_drop_in.MyDropInService"
           android:permission="android.permission.BIND_JOB_SERVICE" />

</application>

you also might need to set minifyEnabled & useProguard to false if it crashes on a release build


buildTypes {
           release {
               signingConfig signingConfigs.release               
               minifyEnabled false
               useProguard false
               proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
           }
       }

###iOS You need to add a URL_SCHEME if you do not have one yet.

Here is how to add one.

You might need to run this command pod update Adyen/Card in your ios folder.

##Usage Just add this in your dart code

 const PAYMENT_SUCCESS = 'SUCCESS';
 const PAYMENT_CANCELLED = 'CANCELLED';
 
 String dropInResponse = await FlutterAdyen.openDropIn(
                paymentMethods: jsonEncode(examplePaymentMethods),
                baseUrl: 'https://YOURBACKEND/payment/',
                authToken: 'Bearer AAABBBCCCDDD222111',
                merchantAccount: 'YOURMERCHANTACCOUNTCOM',
                publicKey: pubKey,
                amount: '1230',
                currency: 'EUR',
                iosReturnUrl: 'YOURAPP://' <-- URL_SCHEME_FOR_YOUR_iOS_APP
                shopperReference: DateTime.now().millisecondsSinceEpoch.toString(),
                reference: DateTime.now().millisecondsSinceEpoch.toString(),
              );
              
  if(dropInResponse == 'PAYMENT_SUCCESS') ... 
  if(dropInResponse == 'PAYMENT_CANCELLED') ...
  else ... // you will get the error message here. (It is not translated to any languages)

Important to know #

The library expect your backend to provide the following endpoints as documented by Adyen:

  • https://YOURBACKEND/payment/payments/
  • https://YOURBACKEND/payment/payments/details/
0
likes
40
pub points
0%
popularity

Publisher

unverified uploader

Flutter plugin to integrate with the Android and iOS libraries of Adyen.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (LICENSE)

Dependencies

flutter

More

Packages that depend on flutter_adyen_drop_in