function getRate() { if (!$this->packages) { $this->error("No packages added"); return; } $map = $this->_getRateMap(); $xml = '<RateV3Request USERID="' . $this->userID . '" PASSWORD="">'; foreach ($this->packages as $package => $data) { $xml .= '<Package ID="' . $package . '">'; foreach ($map as $node => $field) { if (array_key_exists($field, $data)) { $value = $data[$field]; $xml .= '<' . $node . '>' . $value . '</' . $node . '>'; } } $xml .= '</Package>'; } $xml .= '</RateV3Request>'; $request = 'API=RateV3&XML=' . $xml; $response = parent::send($this->server, $request); // Check For Connection Error if (isset($response['ERROR'])) { $this->_responseError($response); return; } $response = $response['RATEV3RESPONSE'][0]['PACKAGE']; $retval = array(); $x = 0; foreach ($response as $package) { // Check For Error if (isset($package['ERROR'])) { $this->_responseError($package); continue; } foreach ($package['POSTAGE'] as $rate) { $retval[$x][$rate['MAILSERVICE'][0]['VALUE']]['rate'] = $rate['RATE'][0]['VALUE']; $retval[$x][$rate['MAILSERVICE'][0]['VALUE']]['commitmentDate'] = isset($rate['COMMITMENTDATE']) ? $rate['COMMITMENTDATE'][0]['VALUE'] : ''; } $x++; } if (count($retval) == 1) { $retval = $retval[0]; } return $retval; }