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.
The Plugin supports 3dSecure v2 and one time payment. It was not tested in a recurring payment scenario.
- publicKey (from Adyen)
- clientKey (from Adyen)
- amount & currency
- shopperReference (e.g userId)
- baseUrl from your backend
- Adyen Environment (Test, LIVE_EU etc..)
- locale (de_DE, en_US etc..)
- return url after payment (ios URLScheme of you app) for redirecting back to the app
Before calling the plugin, make sure to get the payment methods from your backend. For this, call the a /paymentMethods endpoint:
An example response from payment methods can be seen here:
{
"groups": [
{
"name": "Credit Card",
"types": [
"amex",
"mc",
"visa"
]
}
],
"paymentMethods": [
{
"brands": [
"amex",
"mc",
"visa"
],
"details": [
{
"key": "encryptedCardNumber",
"type": "cardToken"
},
{
"key": "encryptedSecurityCode",
"type": "cardToken"
},
{
"key": "encryptedExpiryMonth",
"type": "cardToken"
},
{
"key": "encryptedExpiryYear",
"type": "cardToken"
},
{
"key": "holderName",
"optional": true,
"type": "text"
}
],
"name": "Credit Card",
"type": "scheme"
},
{
"name": "PayPal",
"supportsRecurring": true,
"type": "paypal"
}
]
}
The app uses these endpoints for payment submit and payment details calls:
<your base url>/payment
<your base url>/payment/details
The plugin will send data for the payment submit call wrapped into another object like this:
{
payment: <all data for payment which has to be sent to adyen>,
additionalData: {key: value}
}
// additonalData can be used to send additional data to your own backend for payment
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.adyen.flutter_adyen.AdyenDropinService"
android:permission="android.permission.BIND_JOB_SERVICE"/>
</application>
you need to add this to your proguard rules
-keep class com.adyen.** { *; }
-keep class app.adyen.flutter_adyen.** { *; }
You need to add a URL_SCHEME if you do not have one yet.
To start a Payment you need to call the plugin like so:
try {
String dropInResponse = await FlutterAdyen.openDropIn(
paymentMethods: paymentMethods, // the result of your payment methods call
baseUrl: 'https://your-server.com/',
clientKey: <ADYEN_CLIENT_KEY>,
amount: '1000', // amount in cents
lineItem: {'id': 'your product ID', 'description': 'Your product description'},
additionalData: {
'someKey': 'Some String'
},
shopperReference: <YouShopperReference>,
returnUrl: 'yourAppScheme://payment', //required for iOS
environment: 'TEST', // add you environment for produciton here: LIVE_US, LIVE_AUSTRALIA or LIVE_EUROPE
locale: 'de_DE', // your preferred locale
publicKey: <your adyen public key>,
currency: 'EUR'); // your preferred currency
} on PlatformException {
// Network Error or other system errors
return PaymentResponse.paymentError.rawValue;
}
// the dropin returns the following responses as string
PAYMENT_CANCELLED
PAYMENT_ERROR
Authorised
Refused
Pending
Cancelled
Error
Received
adyen_flutter's People
Forkers
ivanlunardi lbloder alexghiu asterd svalagorn gommzystudio niklaswa cristechvify numoy labymod westracer pwnywiz toonvanstrijp r0bb3rt garshom metidedev meetpilou deutsche-familienversicherung the-bucket-pros corgivn tajaouart bschmalb alexeyrkadyen_flutter's Issues
Maintained?
problem with recurring payments
Cant change locale
Hi, Im trying to change the locale of the dropin but most translations in the card input fields are stuck in German and few in English, with any setting that Ive tried using.
It seems like its hardcoded to be in German in Android code, but im not familiar with Kotlin, so I might be wrong.
Thanks
After Adding Test Card details Throws exception.
[SwiftFlutterAdyenPlugin] POST /payments - DATA: {"pspReference":"LBLDSJJ8V8NK","resultCode":"Authorised","amount":{"currency":"EUR","value":500},"merchantReference":"ios-components_1699506139920","paymentMethod":{"brand":"amex","type":"scheme"}}
-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID
-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID
[COMPILE ERROR] is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
Dear Team,
Can you, please, assist?
I did everything in order to integrate with Android - according to README
However i get this:
Launching lib/main.dart on sdk gphone x86 in debug mode...
Running Gradle task 'assembleDebug'...
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/CheckoutApiService.kt: (36, 72): 'run(T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/CheckoutApiService.kt: (38, 22): 'forEach((T) -> Unit): Unit' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (96, 21): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (190, 21): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (198, 25): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (204, 25): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (213, 17): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (220, 13): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (240, 21): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (248, 21): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (254, 21): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (262, 17): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
e: /Users/mikhailbarsukou/work/apps/flutter/.pub-cache/hosted/pub.dartlang.org/adyen_dropin-0.7.1/android/src/main/kotlin/app/adyen/flutter_adyen/FlutterAdyenPlugin.kt: (269, 13): 'with(T, T.() -> R): R' is only available since Kotlin 1.3.50 and cannot be used in Kotlin 1.3
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':adyen_dropin:compileDebugKotlin'.
> Compilation error. See log for more details
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 4s
Exception: Gradle task assembleDebug failed with exit code 1
Please, help me with this.
My flutter doctor -v
is
[✓] Flutter (Channel stable, 2.2.1, on Mac OS X 10.15.7 19H15 darwin-x64, locale en-ES)
• Flutter version 2.2.1 at
• Framework revision 02c026b03c (4 weeks ago), 2021-05-27 12:24:44 -0700
• Engine revision 0fdb562ac8
• Dart version 2.13.1
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Library/Android/sdk
• Platform android-30, build-tools 30.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.1, Build version 12A7403
• CocoaPods version 1.10.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.1)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin version 55.1.5
• Dart plugin version 211.6693.108
[✓] VS Code (version 1.41.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (3 available)
• sdk gphone x86 (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)
• macOS (desktop) • macos • darwin-x64 • Mac OS X 10.15.7 19H15 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 91.0.4472.114
• No issues found!
Getting an error when trying the card payment method
As soon as I click on credit card on the drop in I get the following error even when I have specified the public key generated from the adyen dashboard.
E/CO.BaseComponentDialogFragment( 6399): Unable to fetch publicKey.
D/CO.DropInActivityKt( 6399): showError - message: Something went wrong.
W/Parcel ( 6399): Expecting binder but got null!
Can you please tell me what I am doing wrong? I don't have a server website can it be the issue?
Android - submitting card details form crashes the app
Really appreciate the time you've put into developing this plugin!
Description
On Android, submitting the card details form, causes the following exception to be shown in the flutter run
output:
E/AndroidRuntime( 7715): FATAL EXCEPTION: AsyncTask #5
E/AndroidRuntime( 7715): Process: com.frontend, PID: 7715
E/AndroidRuntime( 7715): java.lang.RuntimeException: An error occurred while executing doInBackground()
E/AndroidRuntime( 7715): at android.os.AsyncTask$3.done(AsyncTask.java:353)
E/AndroidRuntime( 7715): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
E/AndroidRuntime( 7715): at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
E/AndroidRuntime( 7715): at java.util.concurrent.FutureTask.run(FutureTask.java:271)
E/AndroidRuntime( 7715): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
E/AndroidRuntime( 7715): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
E/AndroidRuntime( 7715): at java.lang.Thread.run(Thread.java:764)
E/AndroidRuntime( 7715): Caused by: java.lang.IllegalArgumentException: baseUrl must end in /: http://192.168.1.136:3000/my
E/AndroidRuntime( 7715): at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:515)
E/AndroidRuntime( 7715): at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:458)
E/AndroidRuntime( 7715): at app.adyen.flutter_adyen.CheckoutApiServiceKt.getService(CheckoutApiService.kt:67)
E/AndroidRuntime( 7715): at app.adyen.flutter_adyen.AdyenDropinService.makePaymentsCall(FlutterAdyenPlugin.kt:182)
E/AndroidRuntime( 7715): at com.adyen.checkout.dropin.service.DropInService.askPaymentsCall(DropInService.kt:131)
E/AndroidRuntime( 7715): at com.adyen.checkout.dropin.service.DropInService.onHandleWork(DropInService.kt:103)
E/AndroidRuntime( 7715): at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392)
E/AndroidRuntime( 7715): at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383)
E/AndroidRuntime( 7715): at android.os.AsyncTask$2.call(AsyncTask.java:333)
E/AndroidRuntime( 7715): at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/AndroidRuntime( 7715): ... 3 more
The application completely crashes with these last few lines:
D/ ( 7715): HostConnection::get() New Host Connection established 0x6f050540, tid 7796
I/zygote ( 7715): Do full code cache collection, code=995KB, data=662KB
I/zygote ( 7715): After code cache collection, code=856KB, data=496KB
D/EGL_emulation( 7715): eglMakeCurrent: 0x9c407340: ver 1 0 (tinfo 0x859e8a90)
D/EGL_emulation( 7715): eglMakeCurrent: 0x9c405540: ver 2 0 (tinfo 0x87c1b8e0)
D/EGL_emulation( 7715): eglMakeCurrent: 0x9c405540: ver 2 0 (tinfo 0x87c1b8e0)
E/BufferQueueProducer( 7715): [SurfaceTexture-0-7715-0] setAsyncMode: BufferQueue has been abandoned
E/BufferQueueProducer( 7715): [SurfaceTexture-0-7715-0] cancelBuffer: BufferQueue has been abandoned
E/libEGL ( 7715): call to OpenGL ES API with no current context (logged once per thread)
D/FlutterLocationService( 7715): Unbinding from location service.
D/FlutterLocationService( 7715): Destroying service.
Lost connection to device.
Screenshots
Description | Picture |
---|---|
Fill card details | |
After pressing submit |
Environment details
Here is also a dump of flutter doctor -v
:
[✓] Flutter (Channel stable, 2.0.6, on Mac OS X 10.15.7 19H1030 darwin-x64, locale en-US)
• Flutter version 2.0.6 at /Users/alex/Applications/flutter
• Framework revision 1d9032c7e1 (3 weeks ago), 2021-04-29 17:37:58 -0700
• Engine revision 05e680e202
• Dart version 2.12.3
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /Users/alex/Library/Android/sdk
• Platform android-30, build-tools 30.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.4, Build version 12D4e
• CocoaPods version 1.10.1
[✓] Chrome - develop for the web
• CHROME_EXECUTABLE = /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] Connected device (1 available)
• Chrome (web) • chrome • web-javascript • Google Chrome 90.0.4430.212
• No issues found!
Questions
Any idea on whats is going wrong and how to fix it?
Optional Google Pay configuration
Hi,
when Google Pay is enabled on Adyen environment, it needs additional configuration, that cannot be passed into FlutterAdyen.openDropIn
function call.
Error in console (see "Unable to initiate paywithgoogle"):
D/CO.DropInActivityKt(25442): requestPaymentsCall
E/CO.DropInActivityKt(25442): service is disconnected, adding to queue
D/CO.BaseComponentDialogFragment(25442): onBackPressed - false
D/CO.DropInActivityKt(25442): showPaymentMethodsDialog
D/EGL_emulation(25442): eglMakeCurrent: 0x7dd212643980: ver 2 0 (tinfo 0x7dd2a2456700)
W/InputEventReceiver(25442): Attempted to finish an input event but the input event receiver has already been disposed.
D/CO.PaymentMethodListDialogFragmentKt(25442): onAttach
D/CO.PaymentMethodListDialogFragmentKt(25442): onCreateView
D/CO.PaymentMethodsListViewModel(25442): onPaymentMethodsResponseChanged
D/CO.PaymentMethodsListViewModel(25442): onAvailabilityResult - scheme: true
D/CO.PaymentMethodsListViewModel(25442): onAvailabilityResult - bcmc: true
D/CO.PaymentMethodsListViewModel(25442): No details required - directEbanking
D/CO.PaymentMethodsListViewModel(25442): No details required - ebanking_FI
D/CO.PaymentMethodsListViewModel(25442): No details required - giropay
D/CO.PaymentMethodsListViewModel(25442): onAvailabilityResult - ideal: true
E/CO.ComponentParsingProvider(25442): Unable to initiate paywithgoogle
E/CO.ComponentParsingProvider(25442): com.adyen.checkout.core.exception.ComponentException: GooglePay merchantAccount not found. Update your API version or pass it manually inside your GooglePayConfiguration
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.googlepay.model.GooglePayParams.getPreferredGatewayMerchantId(GooglePayParams.kt:50)
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.googlepay.model.GooglePayParams.<init>(GooglePayParams.kt:28)
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.googlepay.GooglePayProvider.isAvailable(GooglePayProvider.kt:77)
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.googlepay.GooglePayProvider.isAvailable(GooglePayProvider.kt:36)
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.dropin.ComponentParsingProviderKt.checkPaymentMethodAvailability(ComponentParsingProvider.kt:176)
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.dropin.ui.paymentmethods.PaymentMethodsListViewModel.setupPaymentMethods(PaymentMethodsListViewModel.kt:101)
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.dropin.ui.paymentmethods.PaymentMethodsListViewModel.<init>(PaymentMethodsListViewModel.kt:52)
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.dropin.ui.paymentmethods.PaymentMethodListDialogFragment$onCreateView$$inlined$getViewModel$1.create(ViewModelExt.kt:42)
E/CO.ComponentParsingProvider(25442): at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
E/CO.ComponentParsingProvider(25442): at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
E/CO.ComponentParsingProvider(25442): at com.adyen.checkout.dropin.ui.paymentmethods.PaymentMethodListDialogFragment.onCreateView(PaymentMethodListDialogFragment.kt:156)
E/CO.ComponentParsingProvider(25442): at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
E/CO.ComponentParsingProvider(25442): at androidx.fragment.app.DialogFragment.performCreateView(DialogFragment.java:489)
E/CO.ComponentParsingProvider(25442): at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
E/CO.ComponentParsingProvider(25442): at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
E/CO.ComponentParsingProvider(25442): at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
E/CO.ComponentParsingProvider(25442): at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
E/CO.ComponentParsingProvider(25442): at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
E/CO.ComponentParsingProvider(25442): at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
E/CO.ComponentParsingProvider(25442): at android.os.Handler.handleCallback(Handler.java:883)
E/CO.ComponentParsingProvider(25442): at android.os.Handler.dispatchMessage(Handler.java:100)
E/CO.ComponentParsingProvider(25442): at android.os.Looper.loop(Looper.java:214)
E/CO.ComponentParsingProvider(25442): at android.app.ActivityThread.main(ActivityThread.java:7356)
E/CO.ComponentParsingProvider(25442): at java.lang.reflect.Method.invoke(Native Method)
E/CO.ComponentParsingProvider(25442): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/CO.ComponentParsingProvider(25442): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
D/CO.PaymentMethodsListViewModel(25442): onAvailabilityResult - paywithgoogle: false
E/CO.PaymentMethodsListViewModel(25442): paywithgoogle NOT AVAILABLE
D/CO.PaymentMethodsListViewModel(25442): onAvailabilityResult - sepadirectdebit: true
D/CO.PaymentMethodsListViewModel(25442): onPaymentMethodsReady: 0 - 7
D/CO.PaymentMethodListDialogFragmentKt(25442): paymentMethods changed
The builder requires at least these parameters:
merchantAccount
googlePayEnvironment
googlePayMerchantId
googlePayMerchantName
Unable to call backend api with authorization header
Hi,
I try to use your plugin, but my backend is secured through a bearer-token in authorization header.
Since your plugin doesn't provide a way to specify custom header for backend calls, I'm unable to use it.
Is it possible to add a simple parameter where I can specify the baseUrl and also a custom http header?
Thanks a lot!
message: IOException
when i make payment call give me error.
handleDropInServiceResult ERROR - reason: null
showError - message: IOException
Ready to share?
Hi There,
I work for Adyen and we think it's awesome you are building a flutter project about Adyen. Do you mind if we share about this repo in our next newsletter?
Best,
Lucas
App crashes when selecting a payment method
Hi,
I followed the instructions written in the readme but the app crashes when I select a payment method. I don't use proguard because it seems that it is now deprecated, when I use it I can't even compile my project. I left the " minifyEnabled true " in my build.gradle.
Everything works fine until I press on the button Card in the payment method. My logs :
I/flutter (12732): {paymentMethods: [{brands: [visa, mc], name: Carte bancaire, type: scheme}]} D/CO.DropIn(12732): startPayment from Activity D/CO.DropInPrefs(12732): Storing shopper locale tag: fr-FR I/Timeline(12732): Timeline: Activity_launch_request time:49420834 D/CO.DropInActivityKt(12732): attachBaseContext D/CO.DropInPrefs(12732): Fetching shopper locale tag: fr-FR D/CO.DropInPrefs(12732): Parsed locale: fr_FR D/CO.DropInActivityKt(12732): onCreate - null D/DecorView[](12732): getWindowModeFromSystem windowmode is 1 D/CO.DropInActivityKt(12732): showPaymentMethodsDialog D/CO.DropInActivityKt(12732): handleIntent: action - null E/CO.DropInActivityKt(12732): Unable to find action D/CO.DropInActivityKt(12732): sendAnalyticsEvent D/CO.PaymentMethodListDialogFragmentKt(12732): onAttach D/CO.PaymentMethodListDialogFragmentKt(12732): onCreateView D/CO.PaymentMethodsListViewModel(12732): onPaymentMethodsResponseChanged D/CO.PaymentMethodsListViewModel(12732): onAvailabilityResult - scheme: true D/CO.PaymentMethodsListViewModel(12732): onPaymentMethodsReady: 0 - 1 D/CO.PaymentMethodListDialogFragmentKt(12732): paymentMethods changed D/CO.DropInServiceKt(12732): bindService - DropInActivity D/FrameIndicator(12732): support status: 1 0x7362d45018 0x7362d454c4 D/FrameIndicator(12732): support status: 1 0x7362d45018 0x7362d454c4 D/FrameIndicator(12732): support status: 1 0x7362d45018 0x7362d454c4 D/FrameIndicator(12732): support status: 1 0x7362d45018 0x7362d454c4 D/CO.DropInServiceKt(12732): onCreate D/CO.DropInServiceKt(12732): onBind D/CO.DropInActivityKt(12732): onServiceConnected D/CO.PaymentMethodListDialogFragmentKt(12732): onPaymentMethodSelected - scheme D/CO.PaymentMethodListDialogFragmentKt(12732): onPaymentMethodSelected: payment method is supported D/CO.DropInActivityKt(12732): showComponentDialog D/OpenGLRenderer(12732): endAllActiveAnimators on 0xb40000732f252d00 (RippleDrawable) with handle 0xb40000732f419020 D/CO.PublicKeyRepositoryKt(12732): fetching publicKey from API D/AndroidRuntime(12732): Shutting down VM E/AndroidRuntime(12732): FATAL EXCEPTION: main E/AndroidRuntime(12732): Process: com.decathlon.soda, PID: 12732 E/AndroidRuntime(12732): android.view.InflateException: Binary XML file line #67 in com.decathlon.soda:layout/fragment_card_component: Binary XML file line #67 in com.decathlon.soda:layout/fragment_card_component: Error inflating class com.adyen.checkout.card.CardView E/AndroidRuntime(12732): Caused by: android.view.InflateException: Binary XML file line #67 in com.decathlon.soda:layout/fragment_card_component: Error inflating class com.adyen.checkout.card.CardView E/AndroidRuntime(12732): Caused by: java.lang.reflect.InvocationTargetException E/AndroidRuntime(12732): at java.lang.reflect.Constructor.newInstance0(Native Method) E/AndroidRuntime(12732): at java.lang.reflect.Constructor.newInstance(Constructor.java:343) E/AndroidRuntime(12732): at android.view.LayoutInflater.createView(LayoutInflater.java:856) E/AndroidRuntime(12732): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1008) E/AndroidRuntime(12732): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:963) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflate(LayoutInflater.java:1125) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1086) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflate(LayoutInflater.java:1128) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1086) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflate(LayoutInflater.java:1128) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1086) E/AndroidRuntime(12732): at android.view.LayoutInflater.inflate(LayoutInflater.java:684) E/AndroidRuntime(12732): at android.view.LayoutInflater.inflate(LayoutInflater.java:536) E/AndroidRuntime(12732): at com.adyen.checkout.dropin.databinding.FragmentCardComponentBinding.inflate(FragmentCardComponentBinding.java:65) E/AndroidRuntime(12732): at com.adyen.checkout.dropin.ui.component.CardComponentDialogFragment.onCreateView(CardComponentDialogFragment.kt:43) E/AndroidRuntime(12732): at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963) E/AndroidRuntime(12732): at androidx.fragment.app.DialogFragment.performCreateView(DialogFragment.java:489) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524) E/AndroidRuntime(12732): at android.os.Handler.handleCallback(Handler.java:938) E/AndroidRuntime(12732): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(12732): at android.os.Looper.loop(Looper.java:237) E/AndroidRuntime(12732): at android.app.ActivityThread.main(ActivityThread.java:8163) E/AndroidRuntime(12732): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(12732): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656) E/AndroidRuntime(12732): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:972) E/AndroidRuntime(12732): Caused by: android.view.InflateException: Binary XML file line #25 in com.decathlon.soda:layout/card_view: Binary XML file line #25 in com.decathlon.soda:layout/card_view: Error inflating class com.google.android.material.textfield.TextInputLayout E/AndroidRuntime(12732): Caused by: android.view.InflateException: Binary XML file line #25 in com.decathlon.soda:layout/card_view: Error inflating class com.google.android.material.textfield.TextInputLayout E/AndroidRuntime(12732): Caused by: java.lang.reflect.InvocationTargetException E/AndroidRuntime(12732): at java.lang.reflect.Constructor.newInstance0(Native Method) E/AndroidRuntime(12732): at java.lang.reflect.Constructor.newInstance(Constructor.java:343) E/AndroidRuntime(12732): at android.view.LayoutInflater.createView(LayoutInflater.java:856) E/AndroidRuntime(12732): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1008) E/AndroidRuntime(12732): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:963) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflate(LayoutInflater.java:1125) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1086) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflate(LayoutInflater.java:1128) E/AndroidRuntime(12732): at android.view.LayoutInflater.inflate(LayoutInflater.java:658) E/AndroidRuntime(12732): at android.view.LayoutInflater.inflate(LayoutInflater.java:536) E/AndroidRuntime(12732): at android.view.LayoutInflater.inflate(LayoutInflater.java:479) E/AndroidRuntime(12732): at com.adyen.checkout.card.databinding.CardViewBinding.inflate(CardViewBinding.java:164) E/AndroidRuntime(12732): at com.adyen.checkout.card.CardView.<init>(CardView.kt:54) E/AndroidRuntime(12732): at com.adyen.checkout.card.CardView.<init>(CardView.kt:43) E/AndroidRuntime(12732): at com.adyen.checkout.card.CardView.<init>(Unknown Source:11) E/AndroidRuntime(12732): at java.lang.reflect.Constructor.newInstance0(Native Method) E/AndroidRuntime(12732): at java.lang.reflect.Constructor.newInstance(Constructor.java:343) E/AndroidRuntime(12732): at android.view.LayoutInflater.createView(LayoutInflater.java:856) E/AndroidRuntime(12732): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1008) E/AndroidRuntime(12732): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:963) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflate(LayoutInflater.java:1125) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1086) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflate(LayoutInflater.java:1128) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1086) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflate(LayoutInflater.java:1128) E/AndroidRuntime(12732): at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1086) E/AndroidRuntime(12732): at android.view.LayoutInflater.inflate(LayoutInflater.java:684) E/AndroidRuntime(12732): at android.view.LayoutInflater.inflate(LayoutInflater.java:536) E/AndroidRuntime(12732): at com.adyen.checkout.dropin.databinding.FragmentCardComponentBinding.inflate(FragmentCardComponentBinding.java:65) E/AndroidRuntime(12732): at com.adyen.checkout.dropin.ui.component.CardComponentDialogFragment.onCreateView(CardComponentDialogFragment.kt:43) E/AndroidRuntime(12732): at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963) E/AndroidRuntime(12732): at androidx.fragment.app.DialogFragment.performCreateView(DialogFragment.java:489) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002) E/AndroidRuntime(12732): at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524) E/AndroidRuntime(12732): at android.os.Handler.handleCallback(Handler.java:938) E/AndroidRuntime(12732): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(12732): at android.os.Looper.loop(Looper.java:237) E/AndroidRuntime(12732): at android.app.ActivityThread.main(ActivityThread.java:8163) E/AndroidRuntime(12732): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(12732): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656) E/AndroidRuntime(12732): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:972) E/AndroidRuntime(12732): Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). E/AndroidRuntime(12732): at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:241) E/AndroidRuntime(12732): at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:215) E/AndroidRuntime(12732): at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:143) E/AndroidRuntime(12732): at com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.java:113) E/AndroidRuntime(12732): at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:474) E/AndroidRuntime(12732): at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:433) E/AndroidRuntime(12732): ... 45 more D/OOMEventManagerFK(12732): checkEventAndDumpForJE: 0 I/Sentry (12732): Not possible to read external files directory I/Process (12732): Sending signal. PID: 12732 SIG: 9 Lost connection to device.
I would appreciate some help ! Can add more information if needed.
Thanks
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.