I did a lot of research for my first e-commerce website. I didn't want a tacky go-to-external-site-payment-gateway-thing. I had a look at Barclays MPS, but they don't provide a nice API. You can to subclass their C++ classes etc. I recommend BT Buynet if you want to easily make a fully custom check out. I used this at
http://www.paws247.com
Basically, you run their Java client on your server, and your code (PHP etc.) sends an XML string with the payment details via a TCP/IP port to the BT Java client. Then they process it securely and return a result.
The advantage to this is that you can do things like just authorise an amount on a card, and settle later (after despatch or something)... and fully integrate into your system and database. Plus, having fully integrated check out pages guarantees a higher conversion rate. Looks a lot more professional than going to an external site.
The results speak for themselves... in addition to a really good database driven navigation hierarchy system I created, thoughtful UI design, and shopper friendly check out, we achieved a 14% visitor/sales conversion rate - which is VERY high.
Basically, the developer should do the work to remove as many obstacles between the customer and final checkout as possible. External solutions (Protx Worldpay, Paypal etc.) do the opposite.