Esempio n. 1
0
 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;
 }