Woohoo! I got PayPal IPN integration working. Now you can register with my application, make a payment via PayPal, and PayPal will come back to my web app and let me know that you've registered. Clever stuff.
I used the PayPal IPN GEM from http://dist.leetsoft.com, and integrated it with my own Payment object. I don't really have the need for a full "ordering"-type system with my application. There is only ever 1 line item per order, so only a single payment object is required. I could have implemented an order, with order_line_items, and shipping and billing addresses, and tax and handling calculations, but I don't need them.
I need to look into the IPN integration a little more tho. When I say I've got it working, I mean I've had 1 payment through that successfully updated a users registration details. PayPal seem to be pushing the transaction to me twice - I handle that correctly (checking for unique transaction IDs), but I think I need to respond to them in some other way. I better re-read those docs.
I'm quite pleased. Maybe a congratulatory coffee & and an apple are in order.