Many websites need to collect payments or donations at some point. For charities and non-profits, I recommend the Give plugin. The Strong Roots Charitable Foundation was using a basic version of the plugin. They needed to collect more information, such as whether the donation was in memory of or in honor of someone. It was simple to upgrade the Give plugin to collect this info. We also used a different form to allow sponsors and team leads to sign up for the golf tournament. The plugin allows for sponsors to choose their giving level.
Vote Climate PAC collects donations; federal law requires they collect extra information from each donor, such as whether the donor is a US citizen. I used Gravity Forms integrated with Stripe to collect this more complex information. The donation form is a multi-page form. Collected information can be easily exported into a report.
I used Gravity Forms again to allow payment to Hart Reporting. This is a very basic payment form again integrated with Stripe.
Another quick and basic donation form was added to Center Stage Dance. For this, I used WP Easy Paypal Payment Accept. It fit the need and was very quick to implement.
In my experience, solutions using Square online payments and Contact Form 7 have a higher failure rate. It is possible Square is more focused on fraud prevention and over vigilant about credit card acceptance.