I know Commerce allows you to just authorize and pay later but the 'pay later' scenario requires re-entering the credit card details. We have a flow that requires the admin to be able to charge a user later without having the credit card details. As such, we would use Stripe's API to create a customer to save the token for future use, as follows:
- User places order, providing credit card info to Stripe.
- Authorize with Stripe and create a customer in Stripe so as to save the token for later use (ie. do not charge the card right away).
- Allow the admin to go into the Craft CP at a later point and charge the customer's card (by making use of the token saved at Stripe). Do this via a status change perhaps?
We're a little lost conceptually how to proceed with this with Craft Commerce. Do we need to write our own custom gateway to do this?
We considered using the built-in Stripe gateway and setting it to "Credit Card Payment Type: Authorize Only" but that means we get the "Make Payment" button on the Order Detail screen and it also isn't doing anything to create the customer on the Stripe end with a saved token.