Hi it's me again. I have found a bug, could you please try the following to reproduce it: (Stripe's test environment will do)
- Use the StripeDirect module. Set up Authorize and Capture method
- Make a checkout going thru all the steps of the one-page-checkout but the last one. ie. after you have entered the card data and got back from Stripe DO NOT click on the Confirm Order button, just abort the order here. (This can happen easily if the customer forgets it, gets distracted or his internet connection goes off at this time)
Now there are two problems:
1 The customer's card has been charged but your webshop is not aware of the aborted order. If you are not proactively watching each transaction at Sripe and correlate these to the possibly aborted orders, there is no way you will notice it. It is very embarrassing to charge a customer's card and then not shipping his order, can also get a webshop in trouble with Stripe or the bank if happens many times.
2. The bigger problem is however the following: Now go back to the shopping cart (there are the unordered items still in it) an try to checkout again with the same payment method StripeDirect. At the 5th step there's an error messsage from Stripe: Stripe error: Invalid request Error.
Apparently the payment module got into an inconsistent state caused by the aborted order.
Only a nopcommerce restart could got thru it for me and allowed me to place new orders again.
A possible solution:
I suggest the following solution to avoid the above error and also avoid the hassle of unplaced but paid orders:
Split the Capture from the Authorize, do the Capture only at the last step when the user clicks the Confrm Order step in the checkout process, it is the same place 'PostProcessPayment' where you moved the order number update to accoring to my earlier idea.
It's not a bug.
It's feature of Stripe new API payment.
When customer presses the button 'Submit payment' and Stripe checks this credit card and 3D Secure than Stripe moves money to your account (create payment).
Another payment methods uses two steps logic:
a) Verify card and 3D Secure
b) Store's owner approves payment after nop order was crested.
I thought about using Authorize and Capture after creating nop order.
It's bad idea.
Stripe will lock money and the store's owner has to Void this payment manually or after 7 days Stripe will do it itself.
I investigate two days how to "hack" this Stripe logic with one step payment.
I did a new release with value 'Manual Confirm' but it wasn't help me.
I have only one ides.
I'll add the new parameter on plugin configure page "Create nop order after Submit payment"
When customer pressed the button 'Submit Payment' after it plugin will create the nop order itself.
What do think about it?
You mean joining the 'Submit Payment' with last step 'Confirm Order' in the checkout. Yes, I think that's a very good idea. So we will never have the payments separated from the orders.
And I felt anyway there are two many steps in the checkout process it has already confused some cutomers in our webshop.
Can you hide/delete the 'confirm order' step from the plugin?
I agree with this idea, the current process doesn't make sense, you make a payment and then confirm the order, with most stores the moment you submit payment the order is expected to be confirmed.
I want to get answer from Stripe support how to split 'create payment' and 'charge money' in the new PaymentIntent API.
I'll write you about it's answer.
Version 3.00 - September 23, 2019
- changed the logic of plugin (old release had an issue - capture payment at once after submit payment, he have soled this issue).
Stripe answered me that we need to solve it myself.
I found another solution. I use the two steps Stripe payment logic.
- create the payment on Payment Info step of checkout
- confirm and validate 3D Secure on order confirm step of checkout.
Please upgrade plugin
Hi, when I look for Stripe plugins, there are 8 of them. I have a customer that has a stripe account and just wants to accept payments on his site, which plugin is best?
Hello Stripe enthusiasts!
I've installed the FoxNetSoft Stripe Direct Payment. However unlike the authorize.net pluggin, the stripe pluggin does not support reoccurring billing, (e.g. monthly subscription) which most of our stores products require.
Does anyone know of a pluggin for stripe that supports reoccurring billing on Nopcommerce 3.9?