Rainy days and Java always get me down

I've Moved My Blog

It's currently located at http://www.urlinone.com/blog

I should say "I'm moving my blog." It's a pretty painful process.

Pebble has blown up on me, and it's been many months since I've been able to blog reliably. I've lost posts. And now I've got to figure out how to migrate my past blog posts from Pebble to my new destination without all the URLs changing, lest external links become 404 Not Founds.

Why does everything in the 21st century have to be a three-day project???

It can be confusing to automate processing of PayPal transactions in a web app, because you have a couple of seemingly overlapping choices.

PDT (Payment Data Transfer) is a way to get information about a transaction that a user in a current session just completed within your web app. The basic flow is that the user selects something to purchase at your site, is directed to PayPal's own pages to complete the transaction, and then returns to your site where you can display information about the completed transaction.

IPN (Instant Payment Notification) is actually more of a behind-the-scenes, server-to-server transaction, in which PayPal notifies you of a transaction, asynchronously. That is, no one has to be logged on to your web site for an IPN to be completed.

This means that a user purchasing something from your site actually kicks off both a PDT and an IPN. How do you deal with that, then? A good rule of thumb is to update your database on IPNs only. The PDT is a good way to give the user confirmation in the presentation layer, but rely on IPN and only IPN to log the transaction or credit an account in your persistence layer.

There is some good information here:
How PDT and IPN work together