This week, I've been testing the shopping cart and checkout of an eCommerce site that uses Payflow Pro. In order to test credit card transactions, I was using the URL that is right in the LIVE documentation (downloaded last week, prior to testing):
To test your application, direct all transactions to pilot-payflowpro.paypal.com. Transactions directed to this URL are processed through PayPal's simulated payment network, enabling you to test the configuration and operation of your application or storefront -- no money changes hands. (You must activate your account and configure your application for live transactions before accepting real orders.)
After setting up the proper certificate paths and this URL, I went about testing. Immediately, my Payflow Pro requests were timing out and returning this error:
-12 - Timeout waiting for response
The curious thing was that the tag seemed to be completely ignoring the timeout attribute of the CFX tag. We have our requests set to timeout after 45 seconds. The current requests, however, were timing out in 3, maybe 4 seconds. Clearly something was wrong.
No matter what I did, I couldn't fix this. After doing a good deal of Googling, I finally came across a Payflow Pro post by Dan Vega. Although the post was over a year old, I got in contact with him (when it comes to Payflow Pro, Dan is kind of a big deal). Dan suggested that the test URL was wrong. Instead of using:
... I should try using:
I popped that baby in there, and blam! Things started working. It's so frustrating when the documentation is wrong (at least, that's what I think is going on).
Anyway, a big thanks to Dan Vega!