Thanks for this summary. It's very helpful. I just wanted to alert people to an additional problem. If you're running a recent, or very securely configured version of PHP, you might get the following error at authorization time:
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of xml_set_object(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/httpd/htdocs/secure/catalog/includes/classes/sausurepay.php on line 694
The solution is to go to line 694, and change this line:
xml_set_object($this->parse_parser,&$this); //Reference to the object from this object
to this:
xml_set_object($this->parse_parser,$this); //Call time pass by reference deprecated. Passing by value instead.
That seems to do the trick (although it's a performance hit). Hopefully the developer of the sausurepay.php classes will fix this in an upcoming version. I've filed a bug report at the sourceforge.net sausurepay site.