flutter_adyen 0.1.5 flutter_adyen: ^0.1.5 copied to clipboard
Flutter plugin to integrate with the Android and iOS libraries of Adyen.
flutter_adyen #
Note: This library is not official from 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.petleo.flutter_adyen.MyDropInService"
android:permission="android.permission.BIND_JOB_SERVICE" />
</application>
###iOS You need to add a URL_SCHEME if you do not have one yet.
##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/