It's all really a bummer because we'd love to see some serious competition in this space, but at the moment no one appears to be up to the task.
It's all really a bummer because we'd love to see some serious competition in this space, but at the moment no one appears to be up to the task.
The worst part about Transparent Redirect is that you can't run any server-side callbacks (like confirming inventory is still available) at the point of sale, you have to run it when they first load the checkout page. Why? Because by the time the checkout page data hits your server, Braintree has already charged the customer's card. If you need to abort the transaction at that point it's frustrating at best.
Maybe there's a really obvious way to work-around that but multiple emails to their developer support weren't helpful.
With Stripe, you can run callbacks and validations all day long and you'll never capture your customer's money until you explicitly say "do it." Much cleaner.
I'm actually a bit confused by this announcement, as it looks essentially the same as their existing client side encryption solution that they've had for at least a year?
* You're right that this is very similar to our previous offering. At its core, the encryption logic is the same.
* While both libraries offer an object which will encrypt your data, that's literally all our previous offering did. New helpers used in conjunction with data attributes eliminate the need to write custom onSubmit handlers, making your integration far simpler.
* We host the JavaScript, making linking directly to it an option.
These things make our JavaScript library substantially easier to use. That, plus the fact that we now recommend Braintree.js over Transparent Redirect motivated us to rebrand it.
There are only a couple options available in the situation you describe. First, you could vault the card before you charge it. Not great. Extra code, and you may not really want to store the card after the sale (depending upon your use-case). The other work-around, while not involving the vault may even be worse. If you don't want to vault the card, you could issue a void after confirming TR if something went awry (or say you're out of stock).
This is why we're really excited about getting Braintree.js into people's hands. It eliminates an extra round-trip for the customer to a third-party which is necessary with tokenization or TR. You can validate the form data before you decide to initiate the sale. It's really simple, too.
We'd be happy to offer a discount for businesses on track to charge over $1M/year. Simply email us at support@stripe.com