Many organizations use the Donations app as a way to record membership payments. This can be especially helpful for organizations using the Nonprofit Success Pack. While most organizations have rather unique membership options and needs, it's typically not too difficult to use the Donations app for standard membership processing.
The most straight-forward approach is to create one Donation app page that provides predefined payment options that represent each of the different membership levels, where each of the predefined values are represented by custom text you add for each level. When a payment is made, the new Opportunity record in Salesforce has its Amount value populated with the value captured on the page. You may also wish to populate the optional Level Code field for each predefined option. This value is saved to Salesforce on the Lead record and mapped to the Opportunity. It is ideal for identifying which option a user selected in a way that can trigger an automation in Salesforce to ensure membership status is updated as desired.
If you have multiple membership options of the same amount - say, a $50 student membership and a $50 senior membership - you can add each as predefined options. The optional Level Code is particularly useful here so that you can distinguish which membership option was selected when viewing records in Salesforce.
Another option would be to create separate donation pages for each of the different membership levels, and when following the same steps below, be able to determine the level of membership chosen by the visitor by the Campaign or Transaction Description related to each of the pages.
While the Nonprofit Success Pack does include date fields for memberships, the Donations app does not automatically populate that data; however, a simple workflow rule, process, or flow in Salesforce can help in this effort.
Happy membership payment page creating!