$doc = $xp->getDocument(); if (is_object($doc->root)) { $root = $doc->getRoot(); $message_recognizer = $root->getName(); } else { fn_google_xml_error('GCC: failed to parse incoming XML'); } if ($message_recognizer != 'merchant-calculation-callback') { fn_google_xml_error('GCC: incoming XML is not that we are expecting'); } // Restart session $google_sess_id = $root->getValueByPath('shopping-cart/merchant-private-data/additional_data/session_id'); if (empty($google_sess_id)) { fn_google_xml_error('GCC: failed to get session ID from XML'); } Session::reset_id($google_sess_id); $_SESSION['cart'] = empty($_SESSION['cart']) ? array() : $_SESSION['cart']; $cart =& $_SESSION['cart']; $currency_code = $root->getValueByPath('shopping-cart/merchant-private-data/additional_data/currency_code'); $response = array(); $adr = $root->getElementByPath('calculate/addresses'); $cds = $root->getElementByPath('calculate/merchant-code-strings'); if ($adr) { $addresses = $adr->getElementsByName('anonymous-address'); } if ($cds) { $_codes = array(); $codes = $cds->getElementsByName('merchant-code-string'); } if (!empty($addresses)) { $total = sizeof($addresses);