I have a members site which requires a one-off payment via Stripe to join. The first step is to take their name, address, plan choice etc... then proceed to payment. Currently I have it register them as a user when they submit the first step which then goes to the Stripe card details page, but if they abandon at the payment step, next time they come back to try again it will say they are already registered when they try and fill in step 1. I know I can add an 'active' flag on the users table and set it as true on payment success, but that doesn't really solve the issue of them becoming a member before making payment.
What is the best way to handle something like this to keep a nice flow without confusing the user? My initial thoughts are to make the unique validation based on a combo of email & active, and just overwrite the other details with the new form content on any re-visits....but that feels a little open to abuse, especially if it is also logging them in after step 1
@gavmrz On the flip side, if you attempt to register them after a payment but they’ve already signed up, then you’re going to get a situation where you’ve charged the customer, but then the customer will get an error message saying something like, “Sorry, this email has already been taken”.
If you have a two-step flow like this, you’d normally create the account on the first step. You can then send an email to the customer notifying them they’ve registered whilst they’re making payment. If they abandon this step, they still have an account (and an email telling them their account was created). So you can include a link in this email saying something along the lines of “Your account has been created. Please complete payment”.
yeah that sounds like a good plan. So completing first step gives them an account with nothing but 'change password' and 'update email', and maybe an option to 'buy plan x'