The payment part does indeed seem the most tricky - you’re going to have to ensure that you give the donor what they paid for as mentioned, but also, you mustn’t let a bug charge them multiple times.
Loads of sites use PayPal successfully, so I expect that you can find implementation examples.
I would also run a database to log what the site does so you can chase down what happens when a donor complains. PayPal probably provides tools to help with this too.
Finally, test the hell out of this thing with different people, different devices, different amounts etc. you may be surprised at how many defects you can cram into a small program.
Also, can we have pictures of the animals concerned?