Coder Social home page Coder Social logo

braintree / braintree-android-drop-in Goto Github PK

View Code? Open in Web Editor NEW
124.0 124.0 74.0 31.51 MB

Braintree Drop-In SDK for Android

Home Page: https://developers.braintreepayments.com/guides/drop-in/android/v2

License: MIT License

Java 72.25% Ruby 0.15% Kotlin 27.56% Shell 0.04%
android braintree drop-in payments sdk ui

braintree-android-drop-in's People

Contributors

bblackbelt avatar billwerges avatar braintreeps avatar cooperbarth avatar demerino avatar epreuve avatar hollabaq86 avatar jackellenberger avatar jaxdesmarais avatar jplukarski avatar kgangineni avatar khushboo18 avatar lkorth avatar mattwylder avatar quinnjn avatar sarahkoop avatar scannillo avatar sestevens avatar sshropshire avatar tdchow avatar vigneshravi7117 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

braintree-android-drop-in's Issues

AddCardActivity expiration date EditText disappear when focus changes

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.

Google Pay, Crash

General information

  • SDK/Library version:
    -- BRAINTREE_VERSION = '2.8.1'
    -- BRAINTREE_DROP_IN = '3.2.0'
    -- BRAINTREE_COLLECTOR = '2.5.4'
    -- PLAY_SERVICE_VERSION = '11.4.2'
  • Environment: Sandbox
  • Android Version and Device: Nexus 5 with Android 6.0.1

Issue description

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());
    }
  • Logs:
    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)

DropIn UI crash issue.

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) 

Remove AndroidPay from recents

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,

Facing a random crash for Drop in UI in android.

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) 

No way for user to choose Android Pay methods after first donation

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:

payment-second_payment-picker

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:

payment-second_payment-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?

Venmo payment method- Unable to refresh issue

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"
device-2017-01-10-030840

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.

Click on Drop In's Paypal icon Returns code Activity.RESULT_FIRST_USER (1)

General information

  • SDK/Library version:

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

  • AndroidManifest

It includes the com.braintreepayments.api.BraintreeBrowserSwitchActivity and enables wallet.api as the demo does.

Issue description

  • When I click in the DropIn's Paypal icon, the next Activity is never showed and I received in the onActivityResult() method a result code of 1 (Activity.RESULT_FIRST_USER). Can you help me solving this issue ?

IMPORTANT:

I tested the Demo app and I don't have the same problem.

No way to disable PayPal using DropInRequest

General information

  • SDK/Library version: 3.0.6
  • Environment: all
  • Android Version and Device: doesn't matter

Issue description

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.

3DSecure web page reloads with "SESSION EXPIRED" message after any action

General information

  • SDK/Library version: drop-in:3.0.8, braintree:2.5.2, card-form:3.0.6
  • Environment: Production
  • Android Version and Device: Any

Issue description

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.

Google Payments API support

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!

Drop in ui not showing

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?

Provide Instant Apps compatibility

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!

disableAndroidPay() ignored

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

Missing permissions for Google Play Services disable BraintreeFragment

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.

ETA - next release

Hi Guys, do you have already an ETA for the next release (the one that contains the fix for android pay)?

Thanks

Demo App Always Says "Postal code is invalid"

General information

  • SDK/Library version: 3.1.1-SNAPSHOT
  • Environment: Sandbox
  • Android Version and Device: OnePlus 3T running 7.1.1

Issue description

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.

How to customize the payment screen in Drop-in UI

General information

  • SDK/Library version: compile 'com.braintreepayments.api:drop-in:3.1.0'
  • Environment: this issue in Sandbox
  • Android Version and Device: 5.1 & 7.0

Issue description

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?

Can't update billing address

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

Update sdk to 27

General information

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.

Cannot go back to app after chrome/ web UI Samsung devices

Happened on:

  • S4 running Android 5.0
  • Note 2 Android 4.4.2
  • S5 Android 6.0.1

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.
device-2017-01-06-125553
device-2017-01-06-125905

device-2017-01-06-125509

support for older card.io libraries dropped?

General information

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

Issue

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)

Drop-in UI is not translated

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.+'

Venmo : 400 Bad request

Hey,

I am using venmo payment in my android app. i got the HTTP 400 Bad Request when try to payment. can anyone tell me why i get this error.

screenshot_2017-04-16-11-47-19

Thanks,

Cannot build project

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.

ClassNotFoundException: com.braintreepayments.api.dropin.DropInRequest

General information

  • SDK/Library version: API 27 | Braintree Android 2.6.2/Drop-in 3.1/Card 5.1.1
  • Gradle version: 4.4.1
  • Environment: Sandbox
  • Android Version and Device: Galaxy S7/7.0

Issue description

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!

Encrypted payload has expired

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)

Fix artifact dependency

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

Drop-in UI with recent payments

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.

ZIP Code software keyboard

General information

  • SDK/Library version: 3.03
  • Environment: Both
  • Android Version and Device: Samsung S6 Edge on Marshmallow

Issue description

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?

SSLProtocolException

General information

  • SDK/Library version: com.braintreepayments.api:drop-in:3.0.8
  • Environment: Sandbox
  • Android Version and Device: Samsung gt - s7390 with Android 4.1 API 16

Issue description

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.

DropInActivity remains in progress state upon leaving ThreeDSecureWebViewActivity

General information

  • SDK/Library version: drop-in:3.0.8, braintree:2.5.2, card-form:3.0.6
  • Environment: Any
  • Android Version and Device: Any

Issue description

When leaving ThreeDSecureWebViewActivity using the system back button or action bar up button underlying Drop-In activity is left in progress state.

Expected behavior

Upon leaving ThreeDSecureWebViewActivity Drop-In activity would hide progress and show the list of recent and availabel payment methods again.

Q: Is there any way to NOT store the card in vault while using Drop-In?

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.

Issue while integrating in A Fragment

General information

  • SDK/Library version: <!com.braintreepayments.api:drop-in:3.+' -->
  • Environment:
  • Android Version and Device: <!-Moto g4 plus Android 7.0 -->

Issue description

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 :-

  1. I fetched the braintree token using get_braintree_token(rootview.getContext()) .

  2. After getting token i passed it to onBraintreeSubmit(braintreeToken ,viewb)

  3. 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);
			}
		}
	} 

about fetch last payment method customer_id

General information

  • SDK/Library version: drop-in:3.1.0
  • Environment: sanbox
  • Android Version and Device: 6.0.1 nexus 5

Issue description

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

CustomerId() documentation

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

See image far right ->

Alpha support library version overriding previous support libs versions

General information

  • SDK/Library version: 3.0.6
  • Environment: Sandbox
  • Android Version and Device: Found on Nexus 5X, but can be reproduced without

Issue description

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

Card number not visible

General information

  • SDK/Library version: 3.0.3
  • Environment: Both
  • Android Version and Device:
    Samsung GT-I9305
    Version 4.1.2

Issue description

When typing in a card number it is not visible on this phone. For example notice how the VISA is lit up but no numbers are showing on the edit text
image

French translation

Could you please translate in French "Credit or Debit Card" to "Carte de crédit ou de débit"

Thanks

Parameter type problem in NativeScript

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.

Allow Credit Card Filtering - Feature Request

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.

Failed to add com.braintreepayments.api:drop-in:3.+ in Android App

General information

  • SDK/Library version: com.braintreepayments.api:drop-in:3.+
  • Environment: Sandbox
  • Android Version and Device: 26.+

Issue description

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.