Since my last post, I’ve implemented PayPal on my site. I thought I’d write about my PayPal implementation experience.
First of all, the fact that I didn’t go with Google Checkout is not because Google Checkout is worse then PayPal in terms of features, performance, fees, etc. I went with PayPal only because I had already spent a lot of time looking into PayPal and that I had a good understanding of how it works. The fact that a lot of websites already use it and it just works(cross my fingers), and that there’s existing support in Ruby on Rails made it almost a no-brainer to go with PayPal. In order for me to get a better time estimate for implementing Google Checkout, I’d have had to spend more time than the couple hours that I had already spent. That said, Google Checkout seems to have all the features that I need. Having SOAP is also nice. Google Checkout also works with AdWords and that’s another plus. It has a lot of potential and my plan is to implement Checkout sometime in 2007.
Now let’s get back to PayPal. It probably only took me a couple days to implement PayPal for my site. PayPal communicates with merchants mainly through HTTP POST’s. HTTP POST’s are used instead of SOAP calls probably because PayPal was developed back when SOAP wasn’t very popular yet. Nonetheless, the HTTP style API didn’t not cause any problems in my implementation. A merchant receives notifications of a payment by getting Instant Payment Notifications(IPN’s) and Payment Data Transfers(PDT’s). With that combo, I was able to determine payment status with no problem in my tests. Speaking of tests, PayPal provides a sandbox test environment that completely mimicks the production environment. You can create test PayPal buyer and merchant accounts and simulate all kinds of scenarios. The sandbox test environment alone probably saved me a lot of time. Additionally, PayPal has good documentation and a lively forum and you’re likely to get any questions answered quickly.
If there were one negative thing, then it would be that some bloggers have had bad experience in getting support for the production environment. I hope that is not the case when my site goes live(keep my fingers crossed)!
I did run into a small problem when I was debugging my payment code and I’ll talk about that in a future post.
Update: the result of this work is now live at UberSquare.com.