As described in https://gitlab.com/ossguy/jmp-register/issues/18 we are aiming for a new series of signup steps that will let users upgrade to a paid account prior to signup, and offer other options for those who don't want to pay before signing up. Since paying at signup and paying later involve a lot of similar steps, this document will describe both of them, noting where the two flows join/separate.

registere

At the registere step of the JMP signup process (in jmp-register) we have the JID verification code and JID. So we know at this point whether the JID is verified and we can proceed accordingly. There are several possibilities here:

  1. the JID has never signed up before, nor has a payment/referral been made for this JID
  2. the JID had trouble registering (e.g. since the requested JMP number disappeared mid-signup) but a payment/referral was made already
  3. the JID is fully registered already (has a JMP number) and the payment/referral is active (unlikely to get here as dupes checked earlier)
  4. the JID is fully registered already (had a JMP number) and the payment/referral has expired (either they stopped paying or trial is over)

The above cases can be handled in a fairly straight-forward way:

  1. present the user with a list of payment/referral options - after they've entered (on the next screen) the following screen signs them up
  2. proceed directly to signing them up, using the requested JMP number (it may fail again, and then can go back and pick a new number, etc.)
  3. note that the JID is registered and show them their JMP number (we know it's them since they verified their JID) plus some extra info
  4. note when the account expired and offer the payment/referral options (similar to the first option, but with different top text)