Paypal should pay us…
…for integrating with their system. What should be a quick job, takes about 3 times longer than it should due to their total inadequate documentation.
I integrated Paypal Web Pro (express and direct) into our system this week. The direct portion wasn’t too bad as we already have other payment processing gateways that we hook into. And there are only so many ways to pass credit card information in an interface.
Their Web Pro Express checkout is a total different experience. Their documentation is haphazard and scattered and total lacking. For example, in the key/value interface, a VERSION key pair is needed. To find what a valid value for that version is though you have to google it and then you find a page on their development site that is pretty deep in the site where a paypal developer says he will maintain the latest version number. For grins, the only documented reference I found was version 2.0.1 (circa 2006/2007), the latest is 62.0 (that’s a lot of version in 4 years).
Their sandbox environment is so slow and having to login to the sandbox with a “master” user/password before running any tests just blows. I’ve automated it know; but just another hurdle that doesn’t really need to be there.
And I almost forgot, setting up a “test” web pro account was an exercise in futility. I spent over an hour trying to get it setup. Their is a form to “apply” for web pro account; but it never liked the email addresses I would give it. Altough this could be user error, I really hope their production process is a bit easier. I finally found a shortcut method to web pro enable one of my existing test accounts – don’t ask how though, I just remember having to search their forums and eventually found something after several false starts. Basically, you have to “login” to the test account and go to a setup tab and click a link on the right (I remember this cause the forum posting had the link on the left and named something else). Things change over time, but is it really too much to ask for a simple checkbox on the test account. I mean, if you make us setup test accounts, why not add a couple of check boxes.
Anyway, once I got the interface going, it wasn’t too bad. I actually didn’t really on the result parameter documentation too much. The call to GetExpressCheckoutDetails returns a lot of fields that are not documented.
And the callback to obtain shipping methods and taxes is nice; but having to specify one method as the default or you won’t use any of the methods is a bit draconian. They could just default to the first one. And I do have a beef with how the display shipping methods. They have two parameters: shipname / shiplabel. The docs are not accurate – or maybe just lacking. It says the shipname is the internal name and the shiplabel is what is shown to the user. Great, I’ll put my internal id in shipname.
Nope, paypal shows shipname shiplabel with a space to the user so you get stuff like:
XX methodname
YY methodname
Arg, and you can’t leave shipname off. I’m still playing with this one a bit; but I will either use a single space or a sequential number. And I would have thought that shipname is what is passed back; but nope again, they pass back shipname shiplabel as 1 string with a space between the two.
Anyway, I feel a bit better and my test suite just finished so time to wrap up this rant. Glad I’m done with it.