braintree / braintree-android-drop-in Goto Github PK
View Code? Open in Web Editor NEWBraintree Drop-In SDK for Android
Home Page: https://developers.braintreepayments.com/guides/drop-in/android/v2
License: MIT License
Braintree Drop-In SDK for Android
Home Page: https://developers.braintreepayments.com/guides/drop-in/android/v2
License: MIT License
Lib version: 3.0.1
SDK version: 24
Device model: Nexus 5X
I tried to use AddCardActivity
with only mandatory fields (credit card number and expiration date). If I insert a valid credit card's number, when I reach the end of the line on CardEditText
, the focus passes to ExpirationDateEditText
. If I focus CardEditText
again, ExpirationDateEditText
disappears. I have to delete at least a digit of the previously inserted credit card's number and insert it again to show ExpirationDateEditText
again.
if add a special character to the TransactionInfo.Builder.setTotalPrice
method after selecting the "Google Pay" payment method it will will cause the app to crash but should return .
e.g.
private GooglePaymentRequest getGooglePaymentRequest() {
return new GooglePaymentRequest()
.transactionInfo(TransactionInfo.newBuilder()
.setTotalPrice("$1.00") // <-------------------HERE---------
.setTotalPriceStatus(WalletConstants.TOTAL_PRICE_STATUS_FINAL)
.setCurrencyCode("USD")
.build());
}
FATAL EXCEPTION: main Process: com.guzmanygomez.gyg.dev, PID: 9883 java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.braintreepayments.api.exceptions.GooglePaymentException) at android.os.Parcel.writeSerializable(Parcel.java:1468) at android.os.Parcel.writeValue(Parcel.java:1416) at android.os.Parcel.writeArrayMapInternal(Parcel.java:686) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330) at android.os.Bundle.writeToParcel(Bundle.java:1079) at android.os.Parcel.writeBundle(Parcel.java:711) at android.content.Intent.writeToParcel(Intent.java:7793) at android.app.ActivityManagerProxy.finishActivity(ActivityManagerNative.java:2918) at android.app.Activity.finish(Activity.java:4873) at android.app.Activity.finish(Activity.java:4891) at com.braintreepayments.api.dropin.DropInActivity.finish(DropInActivity.java:372) at com.braintreepayments.api.dropin.BaseActivity.finish(BaseActivity.java:65) at com.braintreepayments.api.dropin.DropInActivity$4.onAnimationFinished(DropInActivity.java:194) at com.braintreepayments.api.dropin.DropInActivity$9.onAnimationEnd(DropInActivity.java:358) at android.view.animation.Animation$3.run(Animation.java:376) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.io.NotSerializableException: com.google.android.gms.common.api.Status at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461) at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:959) at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360) at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1054) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461) at android.os.Parcel.writeSerializable(Parcel.java:1463) at android.os.Parcel.writeValue(Parcel.java:1416) at android.os.Parcel.writeArrayMapInternal(Parcel.java:686) at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1330) at android.os.Bundle.writeToParcel(Bundle.java:1079) at android.os.Parcel.writeBundle(Parcel.java:711) at android.content.Intent.writeToParcel(Intent.java:7793) at android.app.ActivityManagerProxy.finishActivity(ActivityManagerNative.java:2918) at android.app.Activity.finish(Activity.java:4873) at android.app.Activity.finish(Activity.java:4891) at com.braintreepayments.api.dropin.DropInActivity.finish(DropInActivity.java:372) at com.braintreepayments.api.dropin.BaseActivity.finish(BaseActivity.java:65) at com.braintreepayments.api.dropin.DropInActivity$4.onAnimationFinished(DropInActivity.java:194) at com.braintreepayments.api.dropin.DropInActivity$9.onAnimationEnd(DropInActivity.java:358) at android.view.animation.Animation$3.run(Animation.java:376) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Hello Sir,
App gets crash on selecting payment method.
Here is the version details I'm using :
compile 'com.braintreepayments.api:drop-in:3.+'
Genymotion with OS version: 4.1.1
When I launch payment gateway and selected "Credit or Debit Card" It just crashed with the following logs
each time.
Please look into this issue.
Thanks
Exception while inflating <vector>
org.xmlpull.v1.XmlPullParserException: Binary XML file line #17<vector> tag requires viewportWidth > 0
at android.support.graphics.drawable.VectorDrawableCompat.updateStateFromTypedArray(VectorDrawableCompat.java:717)
at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:654)
at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:617)
at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:745)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:365)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188)
at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:723)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:193)
at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:81)
at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:127)
at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147)
at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27)
at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:53)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:205)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185)
at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:525)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:74)
at com.braintreepayments.api.dropin.AddCardActivity.onCreate(AddCardActivity.java:92)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
12-19 19:31:24.385 12258-12258/com.org.studopoly D/AndroidRuntime: Shutting down VM
12-19 19:31:24.385 12258-12258/com.org.studopoly W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa6307288)
12-19 19:31:24.405 12258-12260/com.org.studopoly D/dalvikvm: GC_CONCURRENT freed 1868K, 9% free 20913K/22919K, paused 10ms+1ms, total 17ms
12-19 19:31:24.421 12258-12258/com.org.studopoly E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.org.studopoly/com.braintreepayments.api.dropin.AddCardActivity}: android.content.res.Resources$NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f020052
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f020052
at android.content.res.Resources.loadDrawable(Resources.java:1918)
at android.content.res.Resources.getDrawable(Resources.java:659)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:374)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:200)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188)
at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:723)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:193)
at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:81)
at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:127)
at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147)
at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27)
at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:53)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:205)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185)
at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:525)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:74)
at com.braintreepayments.api.dropin.AddCardActivity.onCreate(AddCardActivity.java:92)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:877)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:818)
at android.content.res.Resources.loadDrawable(Resources.java:1915)
at android.content.res.Resources.getDrawable(Resources.java:659)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:374)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:200)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188)
at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:723)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:193)
at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:81)
at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:127)
at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147)
at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27)
at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:53)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:205)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185)
at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:525)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:74)
at com.braintreepayments.api.dropin.AddCardActivity.onCreate(AddCardActivity.java:92)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Hi Guys,
I am trying to find a way to remove AndroidPay from the "recents" in the Drop In but it seems not to be possible with current implementation. Google asked us to hide them during the review.
Please advise
Best,
FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #33: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.ViewStub.inflate(ViewStub.java:264)
at com.braintreepayments.api.BraintreePaymentActivity$StubbedView.inflateOrFind(BraintreePaymentActivity.java:389)
at com.braintreepayments.api.BraintreePaymentActivity$StubbedView.show(BraintreePaymentActivity.java:408)
at com.braintreepayments.api.BraintreePaymentActivity.showAddPaymentMethodView(BraintreePaymentActivity.java:260)
at com.braintreepayments.api.BraintreePaymentActivity$2$1.run(BraintreePaymentActivity.java:237)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5312)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.TypedArray android.app.Activity.obtainStyledAttributes(android.util.AttributeSet, int[])' on a null object reference
at android.app.Fragment.onInflate(Fragment.java:1192)
at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2117)
at android.app.Activity.onCreateView(Activity.java:5302)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.ViewStub.inflate(ViewStub.java:264)
at com.braintreepayments.api.BraintreePaymentActivity$StubbedView.inflateOrFind(BraintreePaymentActivity.java:389)
at com.braintreepayments.api.BraintreePaymentActivity$StubbedView.show(BraintreePaymentActivity.java:408)
at com.braintreepayments.api.BraintreePaymentActivity.showAddPaymentMethodView(BraintreePaymentActivity.java:260)
at com.braintreepayments.api.BraintreePaymentActivity$2$1.run(BraintreePaymentActivity.java:237)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5312)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
Hi,
one of the requirements from Google Android Pay team is for user to be able to change the Android Pay payment methods for subsequent payments, should he want to. Here's how our payment screen looks like:
So there's a big yellow button which, if you press it, will reuse the previous payment method. Below it there's a smaller button that's showing the last used payment method info, and the idea is that if you press that, you can change the payment method - it opens your DropIn:
The problem is that, if the user selects Android Pay from this screen, it again executes the payment with the previously used CC through Android Pay.
We have previously discussed this with the support via email (ticket #1339223), where they suggested we check PM nonces manually using DropInResultListener.onResult()
when calling DropInResult.fetchDropInResult
, like explained in your docs, and if we encounter any Android Pay nonces we should then show the Android Pay selection screen.
The only method we found in your DropIn library for showing the Android Pay selection screen is AndroidPay.changePaymentMethod(final BraintreeFragment fragment, final AndroidPayCardNonce androidPayCardNonce)
which explicitly requires AndroidPayCardNonce
and crashes if it's null, while your DropInResult
doesn't give AndroidPayCardNonce
ever, always giving null
.
Can you advise on how we could resolve this problem?
Hey,
I've used drop-in ui and trying to use venmo as my payment method.
On selecting Venmo I'm getting the below error:
"Unable to refresh
Please check your internet connection.
Try again"
My internet is working fine and working internet in all other app of my device.
Its also working if I select other payment option.
I'm attaching screenshot for more clear picture.
Please help me to resolve this issue.
Im using the following dependencies:
compile 'com.braintreepayments.api:drop-in:3.0.8'
compile 'com.google.android.gms:play-services-wallet:9.8.0'
compile 'io.card:android-sdk:5.4.2'
Environment:
Im using the Sandbox credentials.
Android Version and Device:
Im testing in a Genymotion emulator: Google Galaxy Nexus - 4.3 - API 18
It includes the com.braintreepayments.api.BraintreeBrowserSwitchActivity and enables wallet.api as the demo does.
I tested the Demo app and I don't have the same problem.
Hi, I've tried using the DropInRequest.disablePaypal()
method but it does nothing, and looking through the code of the SupportedPaymentMethodsAdapter
, it's just checking the Configuration
to see if Paypal is enabled, but the explicit flag passed in DropInRequest
is not used.
3D secure requested by drop-in correctly opens, SMS arrives, but when either of Cancel or Submit buttons is clicked the page switches to a "SESSION EXPIRED" page instead of canceling or failure or success.
The card issuer is mBank CZ. I tried cards from two major associations issued by the same bank, both presented with this issue.
Hi,
wanted to ask about the Google Payments API support - I've seen some commits in the android library that should enable it, but are you also replacing the "Pay with Android Pay" with "Pay with Google" on the UI side?
Also, will there be a new drop-in release with Google Payments support soon?
Thanks!
I used async to fetch token from my server and at the end of the async i call the dropin function and nothing happen after that. However, when i hard coded the token into a string and place it into the dropin function the ui appear. Any way to solve this?
Hi,
do you have any info on if/when you'll be providing Instant Apps compatibility? Looking at the available info (https://developer.android.com/topic/instant-apps/prepare.html), there's item 2 i.e. Also, an activity cannot launch another activity directly within an instant app; rather, it must request the URL address that corresponds to that activity.
Effectively there's no activity opening and no onActivityResult
but everything would need to be communicated via app links (https://developer.android.com/training/app-links/index.html).
Thanks!
Hi Guys, the disableAndroidPay() flag seems to be ignored. The option is still showed in the Drop-in. Furthermore the method isAndroidPayEnabled is never called in the DropInActivity.
Please advise
Hi,
we've gotten reports from some of our users that they get the com.braintreepayments.api.exceptions.GoogleApiClientException: Connection failed: 19
error when they try to use the Braintree drop-in in our app.
This is the [SERVICE_MISSING_PERMISSION
error code](https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult#SERVICE_MISSING_PERMISSION), and apparently it shows up because the users disabled some of the play services permissions, and for that reason, google api client listener throws an exception which gets propagated immediately and effectively renders the whole BraintreeFragment unusable. It looks like the situation described in this article.
But, since this check is used only to ascertain the availability (or not) of Android Pay, I would rather like that that would be the outcome i.e. instead of propagating the GoogleApiClientException
(or any GoogeApiClient
errors, for that matter), it could just disable AndroidPay, and the credit card and PayPal would remain usable as payment methods. Currently, when opening the Drop In, I immediately get back onActivityResult()
with resultCode = 1
, which is not ideal.
Hi Guys, do you have already an ETA for the next release (the one that contains the fix for android pay)?
Thanks
When running the demo app (built off of cloning this repo) and trying to add a new credit card, no matter what the postal code is it'll always say the postal code is invalid. I have tried with 10+ different credit cards and a bunch of variations of postal codes but nothing works.
Please check the version 1 customization screen. I need to customize like this
https://developers.braintreepayments.com/guides/drop-in/customization/android/v1
Sample customization code
Customization customization = new Customization.CustomizationBuilder()
.primaryDescription("Cart")
.secondaryDescription("3 Items")
.amount("$35")
.submitButtonText("Purchase")
.build();
But unfortunately Customization class not available in latest version.
My Question how to customize the Drop-in UI payment screen in latest version library?
Two questions 1. Custom form with fields addressLine, city, state, zip or postal code. Confused where to put City and State? Documentation doesn't help.
All fields not available in CardBuilder
AddressRequest updateRequest = new AddressRequest()
.firstName("Jenna")
.lastName("Smith")
.company("Braintree")
.streetAddress("1 E Main St")
.extendedAddress("Suite 403")
.locality("Chicago")
.region("Illinois")
.postalCode("60622")
.countryCodeAlpha2("US");
2. Card number, holder name is updated successfully but updating only billing address is an issue.
cardBuilder.streetAddress(addressLine)
.locality(city+", "+state)
// .region(city+", "+state)
.postalCode(zip);
com.braintreepayments.api.Card.tokenize(mBraintreeFragment, cardBuilder);
* SDK/Library version: com.braintreepayments.api:drop-in:3.1.0
* Environment: Sandbox
* Android Version and Device: Nexus 5, Android 6.0.1
Hi I want to change text "Add card" to "Payment". Please help me how can I change.
I also want to set portrait mode for Drop-in UI.
Thank you.
Hi,
I noticed that you're still using the old MasterCard logo, which got changed last year. Can we get this updated please?
http://www.underconsideration.com/brandnew/archives/new_logo_and_identity_for_mastercard_by_pentagram.php
https://brand.mastercard.com/brandcenter/mastercard-brand-mark.html
Thanks!
I am using SDK version 27 and also using this Braintree library in my project but showing warning two version (26 and 27)found. So can you please update the SDK version. Thank You.
Happened on:
Both close button on top left corner of the screen and physical back button leads to the previous page in the browser history e.g. cnn.com instead of go back to my app
This issue didn't happen a month ago.
I'm using latest Braintree Drop-in 3.0.4.
I've tried downgrading the library to 3.0.3, 3.0.2, 3.0.1 and 3.0.0 but the issue remains the same.
Our gradle setup:
compile 'com.braintreepayments.api:braintree:2.4.2' // Braintree for handling payments
compile 'com.braintreepayments.api:drop-in:3.0.6' // Built in "drop in" UI for braintree payment selections
compile 'io.card:android-sdk:5.0.1' // Card.IO - credit card scanning; NOTE: don't update past 5.0.1 as newer versions are much larger
Also, we include version 5.0.1 of io.card library. The reason we're using 5.0.1 was the size of this library ballooned on later version. See: card-io/card.io-Android-SDK#178
The latest version of the drop-in plugin doesn't seem to work anymore with card.io card scanning. At least previous versions did show a 'scan card' option in the 'add credit card' screen and it's not there anymore.
We see the button if we use the latest version of card.io library.. but, I'm not sure we'll be able to do this due to the added library size (it's already large enough on it's own)
We have been using Drop-in UI in our app for quite a long time. It works very well. The only thing is that we just notice recently that it's not localized. We change device language to Chinese, Japanese, .... but the drop-in is still in English.
This is how we integrate Braintree in our Gradle file
compile 'com.braintreepayments.api:braintree:2.+' compile 'com.braintreepayments.api:drop-in:2.+' compile 'com.braintreepayments.api:data-collector:2.+'
Commit b818fa
I got the following error trying to build the project.
I switched the gradle version to 2.14.1, and Android plugin version for gradle to 2.2.3.
Compile SDK version is API 26.
Execution failed for task ':Demo:processDebugAndroidTestResources'.
> java.io.FileNotFoundException: /Users/sean/personal/projects/braintree-android-drop-in/Demo/build/intermediates/symbols/androidTest/debug/R.txt (No such file or directory)
Full log message
Executing tasks: [clean, :Demo:generateDebugSources, :Demo:generateDebugAndroidTestSources, :Demo:mockableAndroidJar, :Demo:prepareDebugUnitTestDependencies, :Demo:compileDebugSources, :Demo:compileDebugAndroidTestSources, :Demo:compileDebugUnitTestSources, :Drop-In:generateDebugSources, :Drop-In:generateDebugAndroidTestSources, :Drop-In:mockableAndroidJar, :Drop-In:prepareDebugUnitTestDependencies, :Drop-In:compileDebugSources, :Drop-In:compileDebugAndroidTestSources, :Drop-In:compileDebugUnitTestSources]
Configuration on demand is an incubating feature.
WARNING. Nexus staging plugin should only be applied to the root project in build.
Incremental java compilation is an incubating feature.
WARNING: Ignoring Android API artifact com.google.android:android:2.1_r1 for debug
WARNING: Ignoring Android API artifact com.google.android:android:2.1_r1 for debug
WARNING: Ignoring Android API artifact com.google.android:android:2.1_r1 for release
WARNING: Ignoring Android API artifact com.google.android:android:2.1_r1 for release
:Demo:clean
:Drop-In:clean
:Demo:preBuild UP-TO-DATE
:Demo:preDebugBuild UP-TO-DATE
:Demo:checkDebugManifest
:Demo:extractProguardFiles
:Demo:preReleaseBuild
:Drop-In:preBuild UP-TO-DATE
:Drop-In:preReleaseBuild UP-TO-DATE
:Drop-In:checkReleaseManifest
:Drop-In:preDebugAndroidTestBuild UP-TO-DATE
:Drop-In:preDebugBuild UP-TO-DATE
:Drop-In:preDebugUnitTestBuild UP-TO-DATE
:Drop-In:preReleaseUnitTestBuild UP-TO-DATE
:Drop-In:prepareComAndroidSupportAnimatedVectorDrawable2600Library
:Drop-In:prepareComAndroidSupportAppcompatV72600Library
:Drop-In:prepareComAndroidSupportCardviewV72600Library
:Drop-In:prepareComAndroidSupportDesign2600Library
:Drop-In:prepareComAndroidSupportMultidex101Library
:Drop-In:prepareComAndroidSupportRecyclerviewV72600Library
:Drop-In:prepareComAndroidSupportSupportCompat2600Library
:Drop-In:prepareComAndroidSupportSupportCoreUi2600Library
:Drop-In:prepareComAndroidSupportSupportCoreUtils2600Library
:Drop-In:prepareComAndroidSupportSupportFragment2600Library
:Drop-In:prepareComAndroidSupportSupportMediaCompat2600Library
:Drop-In:prepareComAndroidSupportSupportV42600Library
:Drop-In:prepareComAndroidSupportSupportVectorDrawable2600Library
:Drop-In:prepareComAndroidSupportTransition2600Library
:Drop-In:prepareComBraintreepaymentsApiBraintree270Library
:Drop-In:prepareComBraintreepaymentsApiCore270Library
:Drop-In:prepareComBraintreepaymentsBrowserSwitch014Library
:Drop-In:prepareComBraintreepaymentsCardForm311Library
:Drop-In:prepareComGoogleAndroidGmsPlayServicesBase900Library
:Drop-In:prepareComGoogleAndroidGmsPlayServicesBasement900Library
:Drop-In:prepareComGoogleAndroidGmsPlayServicesIdentity900Library
:Drop-In:prepareComGoogleAndroidGmsPlayServicesMaps900Library
:Drop-In:prepareComGoogleAndroidGmsPlayServicesTasks900Library
:Drop-In:prepareComGoogleAndroidGmsPlayServicesWallet900Library
:Drop-In:prepareComGoogleFirebaseFirebaseCommon900Library
:Drop-In:prepareComPaypalAndroidSdkPaypalOneTouch270Library
:Drop-In:prepareReleaseDependencies
:Drop-In:compileReleaseAidl
:Drop-In:compileReleaseNdk UP-TO-DATE
:Drop-In:compileLint
:Drop-In:copyReleaseLint UP-TO-DATE
:Drop-In:compileReleaseRenderscript
:Drop-In:generateReleaseBuildConfig
:Drop-In:generateReleaseResValues
:Drop-In:generateReleaseResources
:Drop-In:mergeReleaseResources
:Drop-In:processReleaseManifest
:Drop-In:processReleaseResources
:Drop-In:generateReleaseSources
:Drop-In:incrementalReleaseJavaCompilationSafeguard
:Drop-In:compileReleaseJavaWithJavac
:Drop-In:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:Drop-In:extractReleaseAnnotations
:Drop-In:mergeReleaseShaders
:Drop-In:compileReleaseShaders
:Drop-In:generateReleaseAssets
:Drop-In:mergeReleaseAssets
:Drop-In:mergeReleaseProguardFiles
:Drop-In:packageReleaseRenderscript UP-TO-DATE
:Drop-In:packageReleaseResources
:Drop-In:processReleaseJavaRes UP-TO-DATE
:Drop-In:transformResourcesWithMergeJavaResForRelease
:Drop-In:transformClassesAndResourcesWithSyncLibJarsForRelease
:Drop-In:mergeReleaseJniLibFolders
:Drop-In:transformNative_libsWithMergeJniLibsForRelease
:Drop-In:transformNative_libsWithSyncJniLibsForRelease
:Drop-In:bundleRelease
:Demo:prepareBraintreeAndroidDropInDropIn311SNAPSHOTLibrary
:Demo:prepareComAndroidSupportAnimatedVectorDrawable2600Library
:Demo:prepareComAndroidSupportAppcompatV72600Library
:Demo:prepareComAndroidSupportCardviewV72600Library
:Demo:prepareComAndroidSupportDesign2600Library
:Demo:prepareComAndroidSupportMultidex101Library
:Demo:prepareComAndroidSupportRecyclerviewV72600Library
:Demo:preDebugAndroidTestBuild UP-TO-DATE
:Demo:prepareComAndroidSupportSupportCompat2600Library
:Demo:prepareComAndroidSupportSupportCoreUi2600Library
:Demo:prepareComAndroidSupportSupportCoreUtils2600Library
:Demo:prepareComAndroidSupportSupportFragment2600Library
:Demo:prepareComAndroidSupportSupportMediaCompat2600Library
:Demo:prepareComAndroidSupportSupportV42600Library
:Demo:prepareComAndroidSupportSupportVectorDrawable2600Library
:Demo:prepareComAndroidSupportTransition2600Library
:Demo:prepareComBraintreepaymentsApiBraintree270Library
:Demo:prepareComBraintreepaymentsApiCore270Library
:Demo:prepareComBraintreepaymentsBrowserSwitch014Library
:Demo:prepareComBraintreepaymentsCardForm311Library
:Demo:prepareComFacebookStethoStetho150Library
:Demo:prepareComGoogleAndroidGmsPlayServicesBase1026Library
:Demo:prepareComGoogleAndroidGmsPlayServicesBasement1026Library
:Demo:prepareComGoogleAndroidGmsPlayServicesIdentity1026Library
:Demo:prepareComGoogleAndroidGmsPlayServicesMaps1026Library
:Demo:prepareComGoogleAndroidGmsPlayServicesTasks1026Library
:Demo:prepareComGoogleAndroidGmsPlayServicesWallet1026Library
:Demo:prepareComLukekorthMailable_log016Library
:Demo:prepareComPaypalAndroidSdkPaypalOneTouch270Library
:Demo:prepareComSquareupLeakcanaryLeakcanaryAndroid14Library
:Demo:prepareIoCardAndroidSdk551Library
:Demo:prepareDebugDependencies
:Demo:compileDebugAidl
:Demo:compileDebugRenderscript
:Demo:generateDebugBuildConfig
:Demo:generateDebugResValues
:Demo:generateDebugResources
:Demo:mergeDebugResources
:Demo:processDebugManifest
:Demo:processDebugResources
:Demo:generateDebugSources
:Demo:prepareComAndroidSupportTestRules100Library
:Demo:prepareComAndroidSupportTestRunner100Library
:Demo:prepareComAndroidSupportTestUiautomatorUiautomatorV18213Library
:Demo:prepareComLukekorthDeviceAutomator030Library
:Demo:prepareDebugAndroidTestDependencies
:Demo:compileDebugAndroidTestAidl
:Demo:processDebugAndroidTestManifest
:Demo:compileDebugAndroidTestRenderscript
:Demo:generateDebugAndroidTestBuildConfig
:Demo:generateDebugAndroidTestResValues
:Demo:generateDebugAndroidTestResources
:Demo:mergeDebugAndroidTestResources
:Demo:processDebugAndroidTestResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Demo:processDebugAndroidTestResources'.
> java.io.FileNotFoundException: /Users/sean/personal/projects/braintree-android-drop-in/Demo/build/intermediates/symbols/androidTest/debug/R.txt (No such file or directory)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 6.347 secs
Any idea what went wrong? Thanks.
I'm working with this library in relation to the cordova-plugin-braintree library. Building the app works great, but when I tap on the drop-in UI, the app crashes and I see the following in the logs:
Class not found when unmarshalling: com.braintreepayments.api.dropin.DropInRequest
ClassNotFoundException: com.braintreepayments.api.dropin.DropInRequest
Here's the gradle
file for the plugin:
def packageName = getPackageName()
android {
defaultConfig {
applicationId packageName
}
}
dependencies {
compile 'com.braintreepayments.api:braintree:2.3.12'
compile 'com.braintreepayments.api:drop-in:3.0.1'
compile 'io.card:android-sdk:5.4.1'
}
def getPackageName() {
def config = file("res/xml/config.xml").getText()
def xml = new XmlParser(false, false).parseText(config)
return xml.attribute("id")
}
I realize that this may not be directly related to the SDK, so just hoping for some pointers on what I might look for. Appreciated!
What is wrong?
E/BrainTreePaymentFlow: com.braintreepayments.api.exceptions.BrowserSwitchException: {"debug_id":null,"message":"Encrypted payload has expired"}
at com.braintreepayments.api.PayPal.onActivityResult(PayPal.java:389)
at com.braintreepayments.api.BraintreeFragment.onActivityResult(BraintreeFragment.java:329)
at com.braintreepayments.api.BraintreeFragment.onResume(BraintreeFragment.java:244)
at android.app.Fragment.performResume(Fragment.java:2263)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1008)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1130)
at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1963)
at android.app.FragmentController.dispatchResume(FragmentController.java:174)
at android.app.Activity.performResume(Activity.java:6333)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1388)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Dependency configuration of drop-in
or card-form
module forces consumers to use the latest available support library in range [25.0.0,26) completely ignoring that consumer only ever specified e.g. 25.1.0
in their build.gradle
file.
This SO question describes what's happening.
The artifacts should only depend on the oldest support lib they can do with. Dependency resolution will automatically pick the newest of all specified versions in the project.
Current dependency graph:
+--- com.braintreepayments.api:drop-in:3.0.8
| +--- com.braintreepayments.api:braintree:2.4.3 -> 2.5.2 (*)
| +--- com.braintreepayments:card-form:3.0.5
| | \--- com.android.support:design:[25.0.0,25.99.0) -> 25.3.1 (*)
| \--- com.android.support:cardview-v7:[25.0.0,25.99.0) -> 25.3.1 (*)
More info:
https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm
Does the drop-in UI V3 still show the recent payment methods like shown in the screen shot provided in the Read-me?
(Sandbox)
I created a new customer, generated a client token using the customerId, display the drop-in UI and generate a nonce using a test CC and created a transaction.sale passing the customerId, payment nonce and using the storeInVault option.
However, when displaying the drop-in UI again, it does not show the recent payment method.
If I view the customer in the vault via the control panel, I can see the payment method associated to the customer.
When adding a new card in the drop-in ui, after clicking on the zip field, I'm presented with a text keyboard instead of a number pad. Why is that?
I want to show message when I have submit the payment with fake card number (I have generated via http://www.getcreditcardnumbers.com).
I tried to add the Drop-in UI in my android application but i get the following exception:
com.braintreepayments.api.exceptions.ConfigurationException: Request for configuration has failed: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x506cbae0: Failure in SSL library, usually a protocol error
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:744 0x4bf22814:0x00000000). Future requests will retry up to 3 times
Here's my code.
On button Click event:
public void showDropInUI(View view) {
DropInRequest dropInRequest = new DropInRequest()
.clientToken(clientToken) ;
startActivityForResult(dropInRequest.getIntent(context), DROP_IN_REQUEST);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == DROP_IN_REQUEST) {
if (resultCode == Activity.RESULT_OK) {
DropInResult result = data.getParcelableExtra(DropInResult.EXTRA_DROP_IN_RESULT);
String paymentMethodNonce = result.getPaymentMethodNonce().getNonce();
// send paymentMethodNonce to your server
} else if (resultCode == Activity.RESULT_CANCELED) {
// canceled
} else {
// an error occurred, checked the returned exception
Exception exception = (Exception) data.getSerializableExtra(DropInActivity.EXTRA_ERROR);
}
}
}
I get the clientToken from my server method.
I try to use the Tokenization Key, insted of the clientToken, but i get the same error.
Am i missing something? Sorry for my english.
When leaving ThreeDSecureWebViewActivity using the system back button or action bar up button underlying Drop-In activity is left in progress state.
Upon leaving ThreeDSecureWebViewActivity Drop-In activity would hide progress and show the list of recent and availabel payment methods again.
Hi !
How can I set my Kount Merchant Id when open dorp-in ?
I'd like to add additional language support to braintree sdk, I've found that android drop-in strings are stored in https://github.com/braintree/braintree-android-drop-in/tree/master/Drop-In/src/main/res , what additional steps should I perform to add a localization?
Braintree 2.5.2, Drop-In 3.0.8
When I enter a card in Drop-In UI, confirm "Add card" and then immediately run another Drop-In request the card is present among recent payment methods. This is something that should be left up to the user to decide when a transaction is processed. How do I disable this behavior?
Tested in sandbox.
Hello
I need help with Android Integration inside a fragment , It is working fine when the code is implemented in an Activity but in My Case , i need to implement it in a Fragment .
I am trying to call the dropin ui from a Fragment but unable to do so.
Steps i followed :-
I fetched the braintree token using get_braintree_token(rootview.getContext()) .
After getting token i passed it to onBraintreeSubmit(braintreeToken ,viewb)
When it reaches startActivityForResult() in onBraintreeSubmit function ,The BrainTree UI is not inflated .It directly moves to onActivityResult() with resultcode 1 and some random Request code .
I have written my functions Below.
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootview = inflater.inflate(R.layout.fragment_map, container, false);
get_braintree_token(rootview.getContext());
return rootview;
}
public void get_braintree_token(final Context viewb)
{
StringRequest stringRequest = new StringRequest(Request.Method.GET, "My server URL",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Display the first 500 characters of the response string.
braintreeToken = response.toString();
Log.e("Braintreetoken","token is:"+braintreeToken);
onBraintreeSubmit(braintreeToken, viewb);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
braintreeToken = null;
}
});
// Add the request to the RequestQueue.
requestQueue.add(stringRequest);
}
public void onBraintreeSubmit(String token, Context c) {
Log.e("tokenreceived",token);
DropInRequest dropInRequest = new DropInRequest();
dropInRequest.clientToken(token);
Intent drop = dropInRequest.getIntent(c);
startActivityForResult(drop, BRAINTREE_REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == BRAINTREE_REQUEST_CODE) {
if (resultCode == 1) {
DropInResult result = data.getParcelableExtra(DropInResult.EXTRA_DROP_IN_RESULT);
// use the result to update your UI and send the payment method nonce to your server
} else if (resultCode == Activity.RESULT_CANCELED) {
// the user canceled
} else {
// handle errors here, an exception may be available in
Exception error = (Exception) data.getSerializableExtra(DropInActivity.EXTRA_ERROR);
}
}
}
Fetch last used payment method in sanbox environment,I do not know how to set up customer_id and then let him work,the backend node.js doc is not told me how to set this, please help thanks
The repo's readme and the braintree documentation suggest that I can pass in the customer's braintree id to show existing cards.
I can't find any technical documentation on how to do so, does this feature still exist?
https://developers.braintreepayments.com/guides/drop-in/android/v2#customer-id
Customer ID
If you pass a customerId() when generating the client token, the Drop-in will display that customer's saved payment methods and automatically add any newly-entered credit card payment methods to their Vault record.
And
Including the Drop in UI has been including the recently released 26.0.0-alpha1 support library, breaking certain parts of the api changed in 26
but on a target 25
app. Running ./gradlew :app:dependencies
on these dependencies:
compile "org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}"
compile 'me.relex:circleindicator:1.2.2@aar'
compile 'com.android.support:cardview-v7:25.3.0'
compile 'com.android.support:recyclerview-v7:25.3.0'
compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support:design:25.3.0'
compile 'com.google.code.gson:gson:2.7'
compile 'com.google.firebase:firebase-messaging:10.0.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.okhttp3:okhttp:3.3.1'
compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
compile 'org.parceler:parceler-api:1.1.1'
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
compile 'com.github.chrisbanes.photoview:library:1.2.4'
compile 'io.reactivex:rxandroid:1.1.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'io.reactivex:rxjava:1.1.3'
compile 'com.google.dagger:dagger:2.0'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.algolia:algoliasearch-android:3.5'
compile 'com.appyvet:materialrangebar:1.3'
compile 'com.android.support:support-v4:25.3.0'
compile 'com.braintreepayments.api:braintree:2.+'
compile 'com.braintreepayments.api:drop-in:3.+'
compile 'com.android.support:multidex:1.0.1'
compile 'com.apptentive:apptentive-android:3.2.1'
compile 'com.android.support.constraint:constraint-layout:1.0.1'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:1.10.19'
kapt 'org.parceler:parceler:1.1.1'
kapt 'com.google.dagger:dagger-compiler:2.0'
kapt 'com.android.databinding:compiler:2.3.0'
provided 'org.glassfish:javax.annotation:10.0-b28'
had this output:
+--- io.realm:realm-android-library:3.0.0
| +--- io.realm:realm-annotations:3.0.0
| \--- com.getkeepsafe.relinker:relinker:1.2.2
+--- io.realm:realm-annotations:3.0.0
+--- com.crashlytics.sdk.android:crashlytics:2.6.6
| +--- io.fabric.sdk.android:fabric:1.3.15
| +--- com.crashlytics.sdk.android:beta:1.2.3
| | \--- io.fabric.sdk.android:fabric:1.3.15
| +--- com.crashlytics.sdk.android:answers:1.3.11
| | \--- io.fabric.sdk.android:fabric:1.3.15
| \--- com.crashlytics.sdk.android:crashlytics-core:2.3.15
| +--- io.fabric.sdk.android:fabric:1.3.15
| \--- com.crashlytics.sdk.android:answers:1.3.11 (*)
+--- org.jetbrains.kotlin:kotlin-stdlib:1.1.1
| \--- org.jetbrains:annotations:13.0
+--- me.relex:circleindicator:1.2.2
+--- com.android.support:cardview-v7:25.3.0 -> 26.0.0-alpha1
| \--- com.android.support:support-annotations:26.0.0-alpha1
+--- com.android.support:recyclerview-v7:25.3.0 -> 26.0.0-alpha1
| +--- com.android.support:support-annotations:26.0.0-alpha1
| +--- com.android.support:support-compat:26.0.0-alpha1
| | \--- com.android.support:support-annotations:26.0.0-alpha1
| \--- com.android.support:support-core-ui:26.0.0-alpha1
| +--- com.android.support:support-annotations:26.0.0-alpha1
| \--- com.android.support:support-compat:26.0.0-alpha1 (*)
+--- com.android.support:appcompat-v7:25.3.0 -> 26.0.0-alpha1
| +--- com.android.support:support-annotations:26.0.0-alpha1
| +--- com.android.support:support-v4:26.0.0-alpha1
| | +--- com.android.support:support-compat:26.0.0-alpha1 (*)
| | +--- com.android.support:support-media-compat:26.0.0-alpha1
| | | +--- com.android.support:support-annotations:26.0.0-alpha1
| | | \--- com.android.support:support-compat:26.0.0-alpha1 (*)
| | +--- com.android.support:support-core-utils:26.0.0-alpha1
| | | +--- com.android.support:support-annotations:26.0.0-alpha1
| | | \--- com.android.support:support-compat:26.0.0-alpha1 (*)
| | +--- com.android.support:support-core-ui:26.0.0-alpha1 (*)
| | \--- com.android.support:support-fragment:26.0.0-alpha1
| | +--- com.android.support:support-compat:26.0.0-alpha1 (*)
| | +--- com.android.support:support-core-ui:26.0.0-alpha1 (*)
| | \--- com.android.support:support-core-utils:26.0.0-alpha1 (*)
| +--- com.android.support:support-vector-drawable:26.0.0-alpha1
| | +--- com.android.support:support-annotations:26.0.0-alpha1
| | \--- com.android.support:support-compat:26.0.0-alpha1 (*)
| \--- com.android.support:animated-vector-drawable:26.0.0-alpha1
| \--- com.android.support:support-vector-drawable:26.0.0-alpha1 (*)
+--- com.android.support:design:25.3.0 -> 26.0.0-alpha1
| +--- com.android.support:support-v4:26.0.0-alpha1 (*)
| +--- com.android.support:appcompat-v7:26.0.0-alpha1 (*)
| +--- com.android.support:recyclerview-v7:26.0.0-alpha1 (*)
| \--- com.android.support:transition:26.0.0-alpha1
| +--- com.android.support:support-annotations:26.0.0-alpha1
| \--- com.android.support:support-v4:26.0.0-alpha1 (*)
+--- com.google.code.gson:gson:2.7
+--- com.google.firebase:firebase-messaging:10.0.1
| +--- com.google.android.gms:play-services-basement:10.0.1
| | \--- com.android.support:support-v4:24.0.0 -> 26.0.0-alpha1 (*)
| +--- com.google.firebase:firebase-iid:10.0.1
| | +--- com.google.android.gms:play-services-basement:10.0.1 (*)
| | \--- com.google.firebase:firebase-common:10.0.1
| | +--- com.google.android.gms:play-services-basement:10.0.1 (*)
| | \--- com.google.android.gms:play-services-tasks:10.0.1
| | \--- com.google.android.gms:play-services-basement:10.0.1 (*)
| \--- com.google.firebase:firebase-common:10.0.1 (*)
+--- com.squareup.retrofit2:converter-gson:2.1.0
| +--- com.squareup.retrofit2:retrofit:2.1.0
| | \--- com.squareup.okhttp3:okhttp:3.3.0 -> 3.3.1
| | \--- com.squareup.okio:okio:1.8.0
| \--- com.google.code.gson:gson:2.7
+--- com.squareup.retrofit2:retrofit:2.1.0 (*)
+--- com.squareup.okhttp3:okhttp:3.3.1 (*)
+--- com.squareup.okhttp3:logging-interceptor:3.3.1
| \--- com.squareup.okhttp3:okhttp:3.3.1 (*)
+--- org.parceler:parceler-api:1.1.1
+--- com.facebook.android:facebook-android-sdk:4.1.0
| +--- com.android.support:support-v4:[21,22) -> 26.0.0-alpha1 (*)
| \--- com.parse.bolts:bolts-android:1.2.0
+--- com.github.JakeWharton:ViewPagerIndicator:2.4.1
| \--- com.android.support:support-v4:23.1.+ -> 26.0.0-alpha1 (*)
+--- com.github.chrisbanes.photoview:library:1.2.4
| \--- com.android.support:support-v4:22.0.0 -> 26.0.0-alpha1 (*)
+--- io.reactivex:rxandroid:1.1.0
| \--- io.reactivex:rxjava:1.1.0 -> 1.1.3
+--- com.github.bumptech.glide:glide:3.7.0
+--- io.reactivex:rxjava:1.1.3
+--- com.google.dagger:dagger:2.0
| \--- javax.inject:javax.inject:1
+--- com.google.firebase:firebase-core:10.0.1
| \--- com.google.firebase:firebase-analytics:10.0.1
| +--- com.google.android.gms:play-services-basement:10.0.1 (*)
| +--- com.google.firebase:firebase-common:10.0.1 (*)
| \--- com.google.firebase:firebase-analytics-impl:10.0.1
| +--- com.google.android.gms:play-services-basement:10.0.1 (*)
| +--- com.google.firebase:firebase-iid:10.0.1 (*)
| \--- com.google.firebase:firebase-common:10.0.1 (*)
+--- com.algolia:algoliasearch-android:3.5
| \--- com.android.support:appcompat-v7:24.2.1 -> 26.0.0-alpha1 (*)
+--- com.appyvet:materialrangebar:1.3
| \--- com.android.support:support-v4:23.1.0 -> 26.0.0-alpha1 (*)
+--- com.android.support:support-v4:25.3.0 -> 26.0.0-alpha1 (*)
+--- com.braintreepayments.api:braintree:2.+ -> 2.4.3
| +--- com.braintreepayments.api:core:2.4.3
| \--- com.paypal.android.sdk:paypal-one-touch:2.4.3
| +--- com.braintreepayments.api:core:2.4.3
| \--- com.paypal.android.sdk:data-collector:2.4.3
+--- com.braintreepayments.api:drop-in:3.+ -> 3.0.6
| +--- com.braintreepayments.api:braintree:2.4.2 -> 2.4.3 (*)
| +--- com.android.support:cardview-v7:[25.0.0,26.0.0) -> 26.0.0-alpha1 (*)
| \--- com.braintreepayments:card-form:3.0.3
| \--- com.android.support:design:[25.0.0,26.0.0) -> 26.0.0-alpha1 (*)
+--- com.android.support:multidex:1.0.1
+--- com.apptentive:apptentive-android:3.2.1
| +--- com.android.support:support-v4:23.3.0 -> 26.0.0-alpha1 (*)
| +--- com.android.support:cardview-v7:23.3.0 -> 26.0.0-alpha1 (*)
| +--- com.android.support:multidex:1.0.1
| +--- com.android.support:design:23.3.0 -> 26.0.0-alpha1 (*)
| \--- com.android.support:appcompat-v7:23.3.0 -> 26.0.0-alpha1 (*)
+--- com.android.support.constraint:constraint-layout:1.0.1
| \--- com.android.support.constraint:constraint-layout-solver:1.0.1
+--- com.android.databinding:library:1.3.1
| +--- com.android.support:support-v4:21.0.3 -> 26.0.0-alpha1 (*)
| \--- com.android.databinding:baseLibrary:2.3.0-dev -> 2.3.0
+--- com.android.databinding:baseLibrary:2.3.0
\--- com.android.databinding:adapters:1.3.1
+--- com.android.databinding:library:1.3 -> 1.3.1 (*)
\--- com.android.databinding:baseLibrary:2.3.0-dev -> 2.3.0
I have fixed this locally by excluding the 'com.android.support'
group altogether, but I believe the issue is with the compile 'com.android.support:cardview-v7:[25.0.0,26.0.0)'
pulling in the newest version of cardView and requiring those alpha dependencies
Could you please translate in French "Credit or Debit Card" to "Carte de crédit ou de débit"
Thanks
Hello,
I am trying to implement this library for NativeScript but it can't extracted metadata for Boolean
parameter type. http://static.javadoc.io/com.braintreepayments.api/drop-in/3.1.0/com/braintreepayments/api/dropin/DropInRequest.html#collectDeviceData-boolean-
We tried to implement it using Java reflection like here: NativeScript/android#831 (comment)
but not working for this method collectDeviceData(boolean collectDeviceData)
:
let collectDeviceDataMethod = dropInRequest.getClass().getMethod("collectDeviceData", [java.lang.Boolean.class]);
collectDeviceDataMethod.invoke(dropInRequest, [true]);
Error:
Error: java.lang.NoSuchMethodException: collectDeviceData [class java.lang.Boolean]
java.lang.Class.getMethod(Class.java:1981)
java.lang.Class.getMethod(Class.java:1637)
com.tns.Runtime.callJSMethodNative(Native Method)
com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1043)
com.tns.Runtime.callJSMethodImpl(Runtime.java:925)
com.tns.Runtime.callJSMethod(Runtime.java:912)
com.tns.Runtime.callJSMethod(Runtime.java:896)
com.tns.Runtime.callJSMethod(Runtime.java:888)
com.tns.gen.java.lang.Object_frnal_ts_helpers_l58_c38__ClickListenerImpl.onClick(Object_frnal_ts_helpers_l58_c38__ClickListenerImpl.java:12)
android.view.View.performClick(View.java:5610)
android.view.View$PerformClick.run(View.java:22265)
android.os.Handler.handleCallback(Handler.java:751)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:154)
android.app.ActivityThread.main(ActivityThread.java:6077)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
File: "file:///data/data/org.nativescript.demo/files/app/tns_modules/nativescript-braintree/braintree.js, line: 25, column: 63
It can't understand boolean
type. It would be better if it is "java.lang.Boolean.class
"
Anyone have suggestion? Thanks in advance.
In the project I work on we have a requirement to not accept Maestro cards. Would it be possible to disable particular cards in the same way we can disable Android pay in the DropInRequest?
I am happy to open a PR with the changes if you accept the feature request and you don't have the bandwidth at the moment.
Hi, I am trying to add com.braintreepayments.api:drop-in:3.+ in my Android Application but whenever i am adding this dependency to my app it's throwing an error like
Failed to resolve:com.android.support:design:26.0.0
Failed to resolve:com.android.support:cardview-v7:26.0.0
Even also i am adding these dependencies to my app, the issue persist.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.