I've been trying for a couple of days to figure out how to test IPN on a Windows XP localhost PC. I read several posts on the subject and I just can't find what I'm doing wrong, unless this is just not possible.
I am running OSC 2.2RC2 with WAMP on a Windows XP computer which is behind a firewall. I have opened ports 80 and 343 (for SSL?) and directed them to this PC (192.168.0.100).
I installed the standard OSC distribution with IPN v184.108.40.206. I used OpenSSL to generate my private and public keys.
Enable PayPal IPN Module: True
Gateway Server: Testing
E-Mail Address: email@example.com (same as Paypal Sandbox Biz account)
Sort order of display: 0
Transaction Currency: Only CAD
Payment Zone: --none--
Set Preparing Order Status: Preparing [PayPal IPN]
Set PayPal Acknowledged Order Status: default
Set PayPal Completed Order Status: default
Transaction Type: Aggregate
Move tax to total amount: True
Debug E-Mail Address: firstname.lastname@example.org (not same as Paypal Sandbox Biz account)
cURL Proxy server (I don't have curl installed, could this be an issue?)
Enable Encrypted Web Payments: True
Your Private Key: C:/Progra~1/OpenSSL/bin/my-prvkey.pem
Your Public Certificate: C:/Progra~1/OpenSSL/bin/my-pubcert.pem
PayPals Public Certificate: C:/Progra~1/OpenSSL/bin/paypal_cert_pem.txt
Your PayPal Public Certificate ID: A**********U (from Paypal's Website Payment Certificates)
Working Directory: c:/wamp/www/ipn_tmp/
OpenSSL Location: C:/Progra~1/OpenSSL/bin/openssl.exe
1. I create an OSC customer account with the same email address as my sandbox "PER" address and login as this customer.
2. I buy an item from the catalog and proceed to checkout with the IPN payment option.
3. I confirm the order: this correctly creates an order with the "Preparing [PayPal IPN]" status and takes me to the Paypal sandbox for payment.
4. In Paypal sandbox, I login with the "PER" address and perform payment.
5. In the sandbox, on the Paypal site, I confirm at this point that an IPN record has been generated:
Message ID: 3WH36683JH469135D
Date/time created: 10/29/2009 14:46 GMT-04:00
Latest delivery attempt date/time: 10/29/2009 14:49 GMT-04:00
Notification URL: http://localhost/ext/modules/payment/paypal_ipn/ipn.php?language=english
HTTP response code
Delivery status: Failed
No. of retries: 4
Transaction ID: 23C76962VW819932B
IPN Type: Transaction made
Note that the notification URL uses "localhost" as IP address. The result is the same if I edit the sandbox IPN settings to my IP address:
Notification URL: http://999.999.999.999:343/ext/modules/payment/paypal_ipn/
The port number (343 in this case, for SSL) does not change the result. Paypal always uses "localhost" in the notification URL.
6. At this point, I check the order status in OSC and it has not changed. It is still "Preparing [PayPal IPN]".
7. I check my server access.log file and all entries are from 127.0.0.1. This tells me that the Paypal server never accesses my server to deliver the IPN update.
Any ideas what I'm doing wrong? Suggestions would be much appreciated.