How It Works
What aMember Pro is all about
aMember Pro is a membership/subscription management PHP script. It is installed on your website to provide the following functionality:
- User registration
- Processes customer payments and keeps track of them
- Protects website folders, pages, downloads, and other kinds of content making it available for subscribed users only
- Integration of the aMember users database with third-party scripts
- Affiliate program management
- Simple Help Desk functionality to provide easy communication between customers and site administrators
- Manages opt-in e-mail lists and newsletters and can send mass e-mails to customers
To order a subscription or product within aMember Pro, the user must fill-in a signup form generated by aMember or log into an existing account. Once the customer presses the signup button, aMember Pro creates the following records in its database:
- pending user record
- pending invoice record
Note: At this point the new user account is "pending" and not yet activated. Until the payment is competed, the user will not be able to view or download protected content. He can, however, login to the member area to make a new payment if the first payment attempt failed
Once these records are created, aMember redirects the customer to the payment system to make the actual payment and passes the payment amount and subscription settings to it. The payment gateway (eg. PayPal, 2Checkout or Authorize.Net, Plimus) checks the information entered and completes the transaction.
- When the transaction is completed successfully, the system will display a confirmation of payment. At this point the system sends confirmation of the payment to the aMember script and the user's status is changed from "Pending" to "Active". The user will receive a welcome email with details about his/her username and possibly other information (the e-mail template can be customized by site administrator).
- If the transaction fails, the failed payment page will be displayed, and most payment systems will redirect the customer to the aMember "cancelled" payment page, where the user can choose another method of payment and attempt to subscribe again.
Depending on product settings configured by site administrator, user access may expire. For example, site administrator may choose to sell subscriptions to 30 days for $10.99. Then, if subscription is not recurring, customer record will expire. User will be marked as Expired, and protected content access will be revoked. However, user record is not deleted after expiration, so customer may back to the website, login to his account and renew subscription - by placing new order.
Many payment processors allows to setup so-named "recurring" billing. This way customer is billed automatically - configured money amount every configured period (eg. $20 every month). aMember Pro was designed to handle recurring billing, so these payments will be correctly processed. Most payment processors reports to aMember when successful recurring payment has made and aMember extends user subscription accordingly. In this case entire membership management is automated.
Recurring Billing Cancellations
Sometimes user wants to unsubscribe from recurring subscription. It can be done by either a link in aMember members area, or in payment processor (for example PayPal provides ability to cancel recurring subscriptions within user account). In this case, aMember will be notified about cancellation and customer invoice will be maked as "Cancelled". It does not mean, however, that user looses access immediately. User will still have access to protected content until paid period expires.
Refunds and Chargebacks
In the event refunds or chargebacks are reported to aMember, aMember will automatically keep records of this and revoke customer access to protected content.
aMember Pro has ability to integrate with third-party applications. If you have such an integration plugin installed and configured, aMember will maintain users database (table) in third-party script, so your aMember subscribers can be automatically added to your Bulletin Board, CMS or HelpDesk users database. When their subscription expires, users will be automatically disabled or (if configured) removed from third-party database.
Please note — this integration is one-way: users are copied from from aMember to third-party script, and never vice-versa (from third-party script to aMember). Second way would require changes to your third-party script, that would be hard to maintain and would make troubles to upgrade your third-party script.
Also, if user has the same username and password in aMember and a third-party script, it is often possible to implement single-login — when user is logged-in into aMember, it becomes logged-in into third-party script and vice-versa.
How does it work
When user signs up in aMember, aMember checks for existing user in third-party users database. If user with the same username is exists in third-party database, signup is not allowed. (The following works if "auto-create" option is enabled in plugin settings)Customer can instead login into aMember with his username and password from a third-party script and aMember account will be created for him.
If there is no such account in third-party script exists, user will be allowed to go through signup in aMember. As user completes payment, aMember immediately upgrades his record in third-party database (if exists) or creates new customer with permissions configured in "Integrations" settings.
Once user subscription expires or user is removed from aMember database, aMember sets up “default” usergroup in third-party database for this user, or removes his record completely (if configured and supported by plugin).
2 Ways to Conifigure Integration Plugins
- Disable users registration completely (using third-party script admin controls) and set links to aMember signup page for new users;
- Keep users registration enabled in the third-party script, but restrict default usergroup (using third-party script admin controls). Create new usergroup (for paid users) and configure aMember to assign that "paid" usergroup to paid customers.