Hi,
I recently figured all of this out and integrated it with a page using a JSON object.
First, check out tests/ship to see the order things are called in. You have to look at it from an action form posting point of view. Also note that processing a shipment requires 2 calls (and returns) to the UPS server. You cannot debug locally / with a firewall or router (at least I couldn't, but when I deployed the test code to my webserver it worked fine).
Secondly, I added one variable to class.upsShip to hold a JSON generated object variable... and i just plug in $this->objectName->propertyName in the proper ship to fields in XML builder. The data in this file was all hard coded in to provide for the test script.
Example of what i modified:
class upsShip {
var $buildRequestXML;
var $xmlSent;
var $responseXML;
var $ShipmentDigest;
var $person; // added this
$ShipmentConfirmRequestXML->element('Name', $this->person->first.' '.$this->person->last);
Third, in class.ups I removed the parameters from the default constructor and hard coded my xml access key, username, and password into the file.
Hope this helps.