Paypal has long had, in my opinion, the best client front end. Users don't have to sign in to give payments and even when they do it's a simple process that Just Works (TM).
However, the API and developer documentation, especially on the UK site is a whole different world of pain, which is compounded by confusing and conflicting articles and multiple, differently supported, systems.
I've recently been trying to integrate the Website Payments Pro UK product with a Zope 3 web site (a Python based framework). There are number of serious gotcha's which caused me a number of days of frustration, which I've documented below in the hope it will save someone else some time:
- UK Payment accounts cannot use the 'normal' Paypal API, documented throughout the site. Or at least its not supported/suggested. I'm still awaiting official clarification on this, but either way there is no decent UK based support for the API. Updated, see below.
- Paypal UK recently bought the Verisign Payflow Pro system and all API access is now through this system.
- Frustratingly point 2 invalidates the usefulness of the many existing Paypal API demos, examples and python wrappers, such as Gocept Paypal.
- There is a Python wrapper, python-payflowpro but the code contains a number of errors / undocumented variables that caused a number of problems getting it running:
- In the example the line: CreditCard(acct=5555555555554444, expdate='1212') will not work. If you pass the account number as a string, rather than an int it will work fine (e.g. CreditCard(acct='5555555555554444', expdate='1212') )
- PARTNER_ID is PayPalUK
- VENDOR_ID and USERNAME are the same - They are the username you use to login to the Paypal Manager
- USERNAME is required, despite being optional in the web login form.
- PASSWORD is the password you use to login to the Paypal Manager
- Python 2.5 is required for the wrapper (although for little functional reason). Zope 3 is only officially supported on Python 2.4, but you can run Zope 3 with no problems on a Python 2.5 system.
- Finally don't forget to add your current IP to 'Allowed IP Addresses' in Paypal Manager
Thanks to Dan Fairs of Fez Consulting for help with a number of these points, including the useful summation:
"Seems that the only thing that's consistent is that everything's different from everything else!"
Update
It seems new Paypal UK accounts have the option of using the Paypal API, as well as the 'traditional Payflow Pro' system.
Paypal UK - This really needs to be made a lot clearer in your documentation and sales literature, it's far too easy to go round in circles trying to work out what works and what doesn't!