While I agree that it would be better if DTReg kept track of transactions that never complete, that is not the issue. The Paypal IPN is sent no matter what the user does. Success.php is responding that it received the IPN. My guess is that it is not matching the returned transaction number with the pending record.
It's clear that success.php returns a 200 even when it is just ignoring the IPN. I can see a refund IPN being sent to success.php and I know that DTReg doesn't pay attention to them (it would be nice if it did) but it still returns a 200. I'm trying to figure out the return=XXXXX on the notification URL. My guess is that it is used to match the IPN to the pending record. If somehow this mapping gets messed up, then no record is created.
Mike
im on the same boat with authorize.net. about 1% of registrations fail. its easy to spot if i keep phpmyadmin open, just view table jos_dtregister_user and sort table by eventId, it is "0" for the failed ones. as the registrations keep coming its getting harder to spot as the failed record count has already grown over phpmyadmin default "25 items" view..
We've just done a change to the confirmation screen to add text above the Next Step button to Warning the user that the Next Step button will take them to the payment gateway and they Must select continue at the end of their payment to return to the site to ensure their registration is recorded.
We were getting a failure of a user making payment but not being recorded in DTRegister occurring almost daily about 3%. Since we add the extra information for the user we have not had one failure.
User related!
What I like is the ability to have is a custom message field in the configuration rather than hacking the code.