How can I give paid access to content? I am looking to manage user access to website content using Rules and the suggested access control module i.e. ACL, TAC etc.

There 3 levels of access to manage:


Unregistered - No access to any Course Content 
Registered - Access to certain Preview nodes (see Preview Module below) 
Paid - Access to the content to which they have paid (as well as Preview nodes)


Unregistered


Unregistered users will have no access to any Course Content nodes
However there may be pages on the site (Cookie, Terms etc.) which anonymous will need access to to keep the site functioning during registration/payment etc.


Registered Users / Preview Module


For each Course, 1 or more Modules (taxonomy term) will be marked as a Preview Module
Preview Modules are identified by the term with a boolean check box: field_module_preview
This should allow access to Registered uses to access the nodes within this Module.


Content types: 
Course – setup as a product
Content

Taxonomy:
Topic
Module

Example:

&gt; Course
&gt; - Module
&gt; - - Topic
&gt; - - - Course Content NO Access
&gt; - Module (Preview checked)
&gt; - - Topic 
&gt; - - - Course Content: Access
&gt; - - - Course Content: Access
&gt; - - Topic 
&gt; - - - Course Content: Access
&gt; - - - Course Content: Access
&gt; - Module
&gt; - - Topic
&gt; - - - Course Content NO Access


Paid Access


Payment processing will be carried out using Drupal Commerce and PayPal. The setup of this is not required. Drupal install will be supplied with Commerce and product types setup.
Once a course is paid, then access is granted to the entire Course and all its nodes


I have tried to integrate rules but no hope to make it working.

Can anyone help me to apply this scenario in my drupal 7?

Thank you in advance.
You should be able to get this to work using the Rules module, using a variation of the rule shown/explained in the answer to "How to make the permissions of a module more granular?". I.e in your case:


you can use the same Rules Event (Drupal is initializing), which to my knowledge is the only Rules Event you can use for this (for any other Rules Event you're just "too late", i.e. the content is already being displayed).
you can perform similar Rules Actions (to perform an appropriate redirect and display a message that fits your needs).
you should use one or more of these Rules Conditions (combined with "OR", not with "AND"!):


check if the current user's role is "anonymous".
related to your field field_module_preview.