Yes, I have done this.
You cannot accept payment via Marketo. I recommend using eventbrite or cvent to handle payments. What I did was redirect the registrant to a payment page (but you could send them directly to eventbrite). Then I'd have to go match payment against the list and update their Status from Registered - Unpaid to Registered - Paid.
I heard eventbrite isn't fully integrated with marketo though.