There isn't a built in "name your price" function. You can set the order form to allow the customer to change the quantity and have a donation product that is for $1 or $5 (whatever your increment for the donation amounts will be). The person donating then increments the quantity to give more. I understand this is not quite the same, so we'll leave this feature request open for others to vote on.
For the receipt, you can make a custom invoice in Ontraport and include all the information you need on it. You can specify the invoice template to use on the order form, so you can have different custom invoice templates for each type of product.