I need some help with an e-commerce problem we're having on our site and need recommendations for a solution. Right now, we're using PayPal for everything (event registrations, online donations, etc) but it has the disadvantage that we have to commit our orders to a database before knowing if the person has actually paid. While we manually reconcile all orders against our PayPal reports, this still doesn't prevent a person registering for a luncheon event and not following through with a payment. Ultimately such things are caught but we want to move to a solution where we know that every order and registration has been paid.
So, in an ideal world, we're looking for a solution that:
1. We can integrate seamlessly into our current website.
2. Takes the order for whatever product and processes it from cart to final confirmation without leaving (or appearing to leave) our website.
3. Provides reporting capabilities to various groups about their events.
4. Has a low up front cost with a low per transaction cost (we're a non-profit)
5. Must work in an Microsoft shop. I might be able to get away with MySQL but MSSQL is an easier sell for my bosses.
6. Is preferably PHP based.
MS compatibility is a must and end-to-end processing on our site is a close second. Many thanks in advance.