Approve member before payment
You can proceed with the below steps -


Create a pay later contribution page for membership.
Let user register for membership using pay later. So Each Membership here would have a pending status.
Create a searchable custom field for Contribution Eg Approved? with Yes No Field values.
Set this to yes on editing contribution record for those you want to approve.


Completing the Pending Payment (If you're using above 4.7 version)- 


Navigate to Administer -> CiviContribute -> CiviContribute Component Settings (civicrm/admin/setting/preferences/contribute?reset=1).
Check Enable Deferred Revenue option and set the Default invoice payment page. Record its page id(you can find it in Manage Contribution Pages where ids are shown for all of them).
From Find Contribution search for all whose Approved field is set to yes.
Select an action to send them an email mentioning the following URL.

http://&lt;site_name&gt;/civicrm/contribute/transact?reset=1&amp;id={page_id_from_step_2}&amp;ccid={contribution_id_token}

Using this url, users will be able to complete their payment and Pending Membership would be updated to New.