I personally used IPN for a bit on a few sites of my design back in the day. IPN wasn't difficult to get my head around, but I spent about 2 weeks working at it. If you want a real challenge, use the USPS web API crap 😉
Depending upon what vendor you want to use (2Checkout, WorldPay, PayPal, CCBill, GoogleCheckout, etc.) you will no doubt have to read up on how they handle items. Unless you can find a really good framework (like Zend or Cake) that has these APIs already built in (i.e. Zend_Framework_PayPal) then you're in for some long days and nights getting things secured and just right.