how to find contacts who have paid for their membership?
You can use Advance search to get the contacts that have membership and have paid for their membership. 


Navigate to CiviCRM >> Search >> Advance search
Expand Contribution accordion
Select Contribution status to Completed and other filters if required
Expand Membership accordion
Select 'Membership is a Test?' to No and other filters if required
Hit Search.


The result should only list contact having membership with its payment.

HTH

Pradeep