Donations via Rollup sale to nearest dollar or custom amount

I am looking to create a donations program for local events/campaigns.

I’d like the customer to be able to roll up their sale to the nearest dollar or select a custom amount.

It should also work with subscription programs, I.e. each re-occuring subscription sale should capture the round up.

Any apps out there capable of doing this?