Bang on. Develop all your payment integration classes separately from your main project. That way you can easily transfer them to a later project should another client come along who wants to use the same gateway.nearly every payment gateway has a test system. I'd code the payment gateway a stand-alone set of classes, write unit tests for them and run that against their test system. You should be able to do this all from your development PC without touching a production server.
akakjs
mm if we're talking 3D Secure call-backs, you might be able to test it by hacking your hosts file. Otherwise maybe the right thing might be to would be setup a domain just for testing.sorry i should have been more precise, i was referring to callbacks to an actual domain. you cant test it on a local host, so every time you want to test you have to upload to a production server, under a test domain.