Closed kristinalim closed 4 years ago
I think we need to figure out the work flow for taking payments by the Admin screen.
Context: If the bank decides this is a high risk transaction it will request SCA. The Hub manager may decide to get around this by asking the shopper to come and pay in person on collection or another time, meaning they want to be able to do this from the Admin screen with the shopper present.
So in the third case above: Admin new payment page for order :we have two options. We can: a) give an error in the case of 3D secure auth required such that an admin will just not be able to take payment from here if the bank requests auth. b) display the 3D secure pop-up regardless, meaning that the hub manager will need the shopper present or able to answer the questions to fill this in. And if they cannot they cancel on the payment.
I think b is a good answer.. However it leaves the question of how to take a payment for an order in the case the someone decides to pay by card AFTER they place the order. I think we need to make sure we have a flow for that.
Hmm... For #4181 which would support asking customers to authenticate payment for subscriptions with pre-existing saved cards on Stripe, we would already have some code for having a partially captured Stripe payment that still needs SCA authentication.
So, for the third case, maybe we can apply a similar workflow:
Actually, as far as I understand, we can also email the Stripe link to authenticate the payment straight from the user's inbox. But this flow sounds similar to phishing attempts, and it might be bad to ask users to do this...
I'm not entirely convinced that you could make this functional without also doing the work for #4180, or if it could be done without wasting a lot of effort on code which would be removed in #4373
The developer who will work on this issue would find out if #4180 needs to be done in the same PR as this one. :slightly_smiling_face:
There are 2 parts to this issue:
We then need to handle further authentications required by communicating with the customer. That will be handled in #4181 (I added this scope to it, we can split that issue later if we want)
What is the problem we are solving
Setting new credit card info for Stripe payment method should use the Payment Method and Setup Intents API and support SCA. The
off-session
mode would be applicable. (Maybe Payment Intents andon-session
mode is more appropriate for checkout that will not save the card? Needs to be checked.)Do this for the following pages:
Support for non-authenticated cards for the following should remain intact and should be tested:
Gist of Setup Intents:
Gist of Payment Intents:
Success factors = expected outcome
1) Shopper Checkout - The shopper does not wish to save the card: For devs:
For testers:
[ ] Test checkout with a test card that requires SCA - 4000 0025 0000 3155 This card should request an authentication. Stripe will trigger a modal asking for the customer to authenticate.
[ ] Test checkout with a test card that does not require SCA - 4242 4242 4242 4242 This card should checkout without authentication.
2) Shopper Checkout - If the shopper DOES wish to save the card For devs:
For testers:
[ ] Test checkout with a test card that requires SCA - 4000 0025 0000 3155 This card should request an authentication. Stripe will trigger a modal asking for the customer to authenticate.
[ ] Test checkout with a test card that does not require SCA - 4242 4242 4242 4242 This card should request an authentication. Stripe will trigger a modal asking for the customer to authenticate.
3) The shopper adds a new saved card in Account -> Cards For devs:
For testers:
[ ] Test checkout with a test card that requires SCA - 4000 0025 0000 3155 This card should request an authentication. Stripe will trigger a modal asking for the customer to authenticate.
[ ] Test checkout with a test card that does not require SCA - 4242 4242 4242 4242 This card should request an authentication. Stripe will trigger a modal asking for the customer to authenticate.
4) The admin attempts to make a take a payment in Admin -> Orders -> New Payment For devs:
For testers:
[ ] Test checkout with a test card that requires SCA - 4000 0025 0000 3155 This card should request an authentication. Stripe will trigger a modal asking for the customer to authenticate.
[ ] Test checkout with a test card that does not require SCA - 4242 4242 4242 4242 This card should checkout without authentication.
5) Standard release testing on Subscriptions specifically using Stripe payments