How It Works

From aMember Pro Documentation
Revision as of 16:06, 26 October 2011 by Alex (talk | contribs)
Jump to: navigation, search

What aMember Pro is all about

aMember Pro is a membership/subscription management PHP script. It is installed to your website to provide the following functionality:

  • user registration
  • process customer payments and keep tracks of them
  • protect website folders, pages, downloads, and other kind of content making it available for subscribed users only
  • integration of users database with third-party scripts
  • affiliate program management
  • simple helpdesk functionality to provide easy communication betweeen customers and site administrators
  • manage opt-in e-mail lists and send mass e-mails to customers

Ordering Process

To order a subscription or product within aMember Pro, user must fill-in signup form generated by aMember or log-in to existing account. Once customer presses the signup button, aMember Pro creates the following records in database:

  • pending user record
  • pending invoice record

Note: At this point user account is not activated. Until the payment is competed, user will not be able to view or download protected content. He can, however, login to member area to make new payment if first payment attempt was failed

Once these records are created, aMember redirects customer to payment system to make actual payment and passes payment amount and subscription settings to it. The payment gateway (eg. PayPal, 2Checkout or Authorize.Net) checks the information entered and makes the transaction.

  1. 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". User will receive a welcome email with details about username and possibly other information (e-mail template can be customized by site administrator).
  2. If the transaction fails, the failed payment page will be displayed, and most payment systems will redirect customer to aMember "cancelled" payment page, where user can choose another method of payment to repeat subscription attempt.


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.

Recurring Billing

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 case if refunds and chargebacks are reported to aMember, aMember will automatically keep records of this, and revoke customer access to protected content.

Integration plugins

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

  1. Disable users registration completely (using third-party script admin controls) and set links to aMember signup page for new users;
  2. 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.