4 ms·
If you have super high throughput, it would be worth temporarily (and very securely) caching transaction parameters to handle downtime.
by zallarak 7y ago
If you have super high throughput, it would be worth temporarily (and very securely) caching transaction parameters to handle downtime.
- pgm8705 7y agoThis is a good idea. I've been working out a plan to move transaction processing to background processes to help with web throughput. I'd imagine I could solve for this problem at the same time.
- tbrooks 7y agoI've thought about this, but I wonder what the UX is like. You always show success? What sort of confirmation does the user get? If the card is declined, how do you notify them later? Would that notification confuse them? So many things to think about.
- hunter2_ 7y ago"Thank you for placing order number x. Check your email for confirmation." Email is somewhat immediate if the gateway was up, somewhat delayed if it was down. Regardless, it then offers order confirmation and shipping info, or it offers a card-declined-try-again flow.
- hrangozz 7y agoWhile on paper it seems simple, it's worth investigating in detail how changing where/how payment details are transmitted and stored could change regulatory compliance requirements and liabilities of your business. It could be more time consuming and expensive than anticipated.
- dickeytk 7y agoand hand-rolling means you've just swapped stripe as the failure point for your homebrew
- dymk 7y agoHow would you do this without suddenly becoming subject to PCI compliance?
- frakkingcylons 7y agoOne way would be to use a service like VeryGoodSecurity to capture payment details initially, then have it forward them to your processor later on.
- alexbilbie 7y agoCreate your Stripe token client side, send it to your API, indicate to the user that the payment is processing. Your backend stores the PCI-compliant Stripe token in a queue which a worker processes as and when it can - therefore allowing you to mitigate Stripe down time. The issues then become one of UX if the payment fails.
- dymk 7y agoIf Stripe is down, you can't create a Stripe token. Iirc tokens also expire fairly quickly (at least - in my testing, that appears to be the case. Perhaps it's different for different types of tokens.) Are Stripe's systems are isolated enough to where their token system is disjoint from the charge system? Do we know what uptime for their token system looks like?
- alexbilbie 7y agoThat’s a fair point about creating Stipe tokens. In my experience (processing several thousand payments with Stripe daily) when there are blips they do seem to be isolated to specific endpoints/entities.