The best option is probably to use Express Checkout. That way the information doesn't get inserted into the database until after the purchase is made.
Another option would be to set up an IPN page and have the inserted record marked as not paid and update the payment status on the IPN page.
I'd go with the first option. I can help with this in a premier support ticket if you feel like it is over your head.
You would:
Set up a shopping cart with an add to cart button for the registration to set the description and amount.
Then run the checkout wizard for Express Checkout.
Then add the few extra fields from your form to that form and update the insert orders to database to include the new fields as well.
That would do it.