Hi, my site allows users (marathon runners) to create a marathon profile page so that they can accept donations online from their friends and families.

A marathon runner has two buttons in the profile admin section:

1 - Release Funds (funds are sent to the charity because they successfully ran the marathon)

2 - Refund Funds (funds are sent back to each of the donators because the marathon runner did not run the marathon)


QUESTION 1 - What way do you think is best way to process / handle the 2 payments above?

A - each marathon profile has a different payment status for the charity ($charity_payment_status) and each donator (in a separate donations table), so when a marathon is completed and the runner clicks the Release Funds button, the $charity_payment_status field is updated to 'payment_pending' and then a cron runs to batch process all the payments every 15 mins, and then the $charity_payment_status is updated to 'settled'.

Or

B - do you think it would be better to process payments on the fly... so as soon as the user presses the Release Funds button, this should process the payments there and then too.


QUESTION 2 - i am planning on using paypal for payments as i need a way that i can easily refund each of the donators if the marathon runner does not run the marathon and decides to press the Refund Funds button, HOWEVER, can you think of any other payment system that might work well.

Thanks in advance to any help you may be able to give with this...