When the Item Group is set to private, Public users (or users that do not meet the role criteria) will not see the Item/payment setting, and so will not be able to pay. If you set the Item Group to Public, all users will then be able to see the Item/payment setting at the end of the Registration, and so complete it fully.
To edit Item Group Privacy Settings, navigate to:
  1. onMessage > Approval > Event Registration
  2. Click 'Edit' to the right of the Event Registration that is not displaying Payment
  3. Click on 'Registration Items'
  4. Click 'Edit Group'
  5. Select the Radio Button for 'Public' or 'Private/Secure' (this should match the the same option in the 'Security' link for the Event Registration overall)
  6. Click 'Save & Exit'


If this does not fit your circumstances, please see another possibility here:
How did a user go through a 'limited attendance' Event Registration without paying?