UserPoints includes support for users buying points with real money via the PayAge payment component. Work through the following steps to set it up.
Install the PayAge component and at least one payment plugin. PayAge is available free from the Remository download store. After installation, go to System → Extensions in the Joomla administrator and confirm that all PayAge items are published.
PayAge handles the actual payment processing. Set up your chosen payment gateway through the PayAge admin interface — refer to the PayAge User Guide for gateway-specific instructions.
In Components → UserPoints → Configuration → General, set:
100 to give 100 points per dollar (each point worth one cent), or 1 to give 1 point per dollar.See the Configuration page for full details on these fields.
Create a Joomla menu item pointing to UserPoints → Purchase. This is the page users visit to choose how much to spend.
Payments can only be made by logged-in users. If a guest visits the purchase page, UserPoints displays an error and redirects to the login page.
Run a test purchase with a small amount. Successful transactions appear in Components → UserPoints → Activities as an activity using the sysplgup_buypoints rule. You can also view full transaction details and issue refunds from the PayAge admin interface.
In addition to the open-ended purchase form, there is a Buy Points module (mod_userpoints_buy_points) that presents users with a menu of pre-defined purchase options. You can deploy this module multiple times to offer different packages at different prices.
To use the module exclusively (hiding the standard "how much do you want to spend?" form), enable Suppress Purchase Details in UserPoints → Configuration → General. Users will then see only the module-defined packages.
See the Modules page for the Buy Points module parameters.
If you use PayPal, then a purchase attempt will result in an empty popup that does not go away. (It can be closed). Behind it is the actual PayPal popup box that you will have seen many times. To make the blank popup disappear of its own accord, you need to modify an option in a Joomla plugin - System HTTP Headers. The option "Cross-Origin-Opener-Policy" needs to be changed from its default value to be "same-origin-allow-popups". With that setting the blank popup appears with a progress indicator and then disappears of its own accord.