Hi Satish:
Here is the first part of the code:
$request = 'API=IntlRate&XML=' . urlencode($request);
}
switch (MODULE_SHIPPING_USPS_SERVER) {
case 'production': $usps_server = 'production.shippingapis.com';
$api_dll = 'shippingapi.dll';
break;
case 'test':
default: $usps_server = 'testing.shippingapis.com';
$api_dll = 'ShippingAPITest.dll';
break;
}
$body = '';
$http = new httpClient();
if ($http->Connect($usps_server, 80)) {
$http->addHeader('Host', $usps_server);
$http->addHeader('User-Agent', 'osCommerce');
$http->addHeader('Connection', 'Close');
if ($http->Get('/' . $api_dll . '?' . $request)) $body = $http->getBody();
$http->Disconnect();
} else {
return false;
}
$response = array();
while (true) {
if ($start = strpos($body, '<Package ID=')) {
$body = substr($body, $start);
$end = strpos($body, '</Package>');
$response[] = substr($body, 0, $end+10);
$body = substr($body, $end+9);
} else {
break;
}
}
$rates = array();
if ($order->delivery['country']['id'] == SHIPPING_ORIGIN_COUNTRY) {
if (sizeof($response) == '1') {
if (ereg('<Error>', $response[0])) {
$number = ereg('<Number>(.*)</Number>', $response[0], $regs);
$number = $regs[1];
$description = ereg('<Description>(.*)</Description>', $response[0], $regs);
$description = $regs[1];
return array('error' => $number . ' - ' . $description);
}
}
$n = sizeof($response);
for ($i=0; $i<$n; $i++) {
if (strpos($response[$i], '<Postage>')) {
$service = ereg('<Service>(.*)</Service>', $response[$i], $regs);
$service = $regs[1];
$postage = ereg('<Postage>(.*)</Postage>', $response[$i], $regs);
$postage = $regs[1];
$rates[] = array($service => $postage);
}
}
} else {
if (ereg('<Error>', $response[0])) {
$number = ereg('<Number>(.*)</Number>', $response[0], $regs);
$number = $regs[1];
$description = ereg('<Description>(.*)</Description>', $response[0], $regs);
$description = $regs[1];
return array('error' => $number . ' - ' . $description);
} else {
$body = $response[0];
$services = array();
while (true) {
if ($start = strpos($body, '<Service ID=')) {
$body = substr($body, $start);
$end = strpos($body, '</Service>');
$services[] = substr($body, 0, $end+10);
$body = substr($body, $end+9);
} else {
break;
}
}
$size = sizeof($services);
for ($i=0, $n=$size; $i<$n; $i++) {
if (strpos($services[$i], '<Postage>')) {
$service = ereg('<SvcDescription>(.*)</SvcDescription>', $services[$i], $regs);
$service = $regs[1];
$postage = ereg('<Postage>(.*)</Postage>', $services[$i], $regs);
$postage = $regs[1];
if (isset($this->service) && ($service != $this->service) ) {
continue;
}
$rates[] = array($service => $postage);
}
}
}
}
I can net find an var_dump $response after line 140.
Maybe this is the problem?
Thanks for all,
glampkin