braintree / braintree-web

A suite of tools for integrating Braintree in the browser
https://developer.paypal.com/braintree/docs/start/hello-client/javascript/v3
MIT License
440 stars 134 forks source link

2.5.0 broke us in the wild #22

Closed robertmeta closed 9 years ago

robertmeta commented 9 years ago

We haven't yet tracked down the cause, we instantly rolled back to tag 2.3.3 because it was stopping our customers from placing non-CC orders. I will update once I have more details on the specifics. This ticket is mostly as a note to others who might hit breakage.

For anyone else looking for a quick fix, 2.3.3 can referenced at https://js.braintreegateway.com/js/braintree-2.3.3.min.js (thanks @jeffcarp)

jeffcarp commented 9 years ago

If you're going to pin a hotlinked script, use this link (not the raw github one or you'll be rate limited): https://js.braintreegateway.com/js/braintree-2.3.3.min.js

@robertmeta do you have any more details about what is breaking? Is it PayPal or Coinbase?

robertmeta commented 9 years ago

@jeffcarp Not yet (first time I have ever looked at this code), it appears some work was done to avoid sending the requests to BT when it was either "Cash" or "Pay In Person" (which could be CC in person at location). When we updated to 2.5.0 -- the form was always being submitted to BT, but obviously when cash or pay in person, all the fields were blank. BT would sensibly return an error and we would ungracefully just stare at our users blankly.

robertmeta commented 9 years ago

@jeffcarp default markplace account with custom integration.

jeffcarp commented 9 years ago

Thanks for the info. Let me know if you find out more. Were you using the nonce received callback?

kyledetella commented 9 years ago

@robertmeta are you using a 'custom' integration or 'paypal'?

robertmeta commented 9 years ago

Simple custom integration. Just got thrown into this all tonight, so catching up on BT terms, this code, the javascript, etc.

kyledetella commented 9 years ago

Sorry, I am having trouble understanding what the exact issue is. What I think you are saying is before upgrading to 2.5.0 the form did not submit when the fields were empty and that was desired behavior on your end. Is that correct?

kyledetella commented 9 years ago

Ok, could you maybe share a snippet of your integration code (braintree.setup)?

robertmeta commented 9 years ago

Basically, as simple as can be: braintree.setup("{CLIENT_TOKEN}", "custom", {id: "formCheckout"});

On the 2.3.3 -- when certain radio boxes are clicked, it doesn't submit through braintree (pay in person), with no other change than upgrading to 2.5.0 -- all submits went through BT, then failed (as they should with all blank data). With pay in person, we don't need braintree, but we still need the submit.

Should have more info tomorrow.

dsazup commented 9 years ago

Hi, we are having the same issue. Same simple custom integration as @robertmeta . We are getting braintree error When there are empty CC field. something as "Payment cannot be processed at this time" can not really recall exactly. And the form will not submit with that error. I can see it is a json response with errors, however I can't seem to find a way how to show them to the user. Had to rollback to 2.3.3 as well. @jeffcarp @kyledetella

geniiweb commented 9 years ago

Same here, I already contacted the support and they requested the form and merchant id to test

kyledetella commented 9 years ago

@robertmeta @mirago @geniiweb We have deployed a fix as version 2.5.1 that will allow you to submit the form with empty credit card fields in a custom integration. Let me know if you run into any further issues.

robertmeta commented 9 years ago

@kyledetella thanks!

jeffcarp commented 9 years ago

Looks like this can be closed. Please yell if you're still experiencing issues related to this.