FedEx API возвращает этот массив ошибок (0) {}?

Я использую библиотеку Codeigniter для получения ставок fedex. Я создал свою собственную библиотеку для получения ставок, и я получаю данные на моем контроллере, запрос обрабатывает, но он возвращает мне массив (0) {}, я искал много, но не могу найти почему он возвращает массив 0 что это за ошибка, что я делаю неправильно.
Мой библиотечный файл.

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class fedex {

function rates(){

$weight = '46';
$this->path_to_wsdl = base_url()."assets/wsdl/RateService_v14.wsdl";

$key                = 'acess_key';
$password           = 'password';
$shipAccount        = 'accound_no';
$meter              = 'meter_no';
$dropofftype        = 'dropofftype';
$service            = 'FEDEX_1_DAY_FREIGHT';
$package            = 'package';
$handling_method    = 'price';
$handling_amount    = '5';
$pkg_width          = '6';
$pkg_height         = '6';
$pkg_length         = '5';
$insurance          = true;
$billAccount        = $shipAccount;

// Build Request

$package = $this->package_types['FEDEX_10KG_BOX'] = 'FEDEX_10KG_BOX';
$dropofftype = $this->dropoff_types['REGULAR_PICKUP'] = 'REGULAR_PICKUP';ini_set("soap.wsdl_cache_enabled", 0);
ini_set('soap.wsdl_cache_ttl',0);

$client = new SoapClient($this->path_to_wsdl, array('trace' => 1, "exception" => 0));
// Refer to http://us3.php.net/manual/en/ref.soap.php for more information

$request['WebAuthenticationDetail'] = array(
'UserCredential' =>array(
'Key' => $key,
'Password' => $password
)
);
$request['ClientDetail'] = array(
'AccountNumber' => $shipAccount,
'MeterNumber' => $meter
);
$request['TransactionDetail'] = array('CustomerTransactionId' => '*** Rate Request v14 using PHP ***');

$request['Version'] = array(
'ServiceId' => 'crs',
'Major' => '14',
'Intermediate' => '0',
'Minor' => '0'
);

$request['ReturnTransitAndCommit'] = false;
$request['RequestedShipment']['RequestedCurrency'] ='$';
$request['RequestedShipment']['DropoffType'] = $dropofftype;
$request['RequestedShipment']['ShipTimestamp'] = date('c');
$request['RequestedShipment']['PackagingType'] = $package;

if($insurance=='yes')
{
$request['RequestedShipment']['TotalInsuredValue']=array(
'Ammount'=> '5',
'Currency'=> '$',
);
}

$request['RequestedShipment']['Shipper'] = array(
'Contact' => array(
'CompanyName' => 'companyname',
'EMailAddress' => 'EMailAddress'
),
'Address' => array(
'StreetLines' => 'StreetLines',
'City' => 'City',
'StateOrProvinceCode' => 'StateOrProvinceCode',
'PostalCode' => 'PostalCode',
'CountryCode' => 'CountryCode'
)
);$request['RequestedShipment']['Recipient'] =  array(
'Contact' => array(
'PersonName' => " ",
'CompanyName' => '',
'PhoneNumber' => '',
),
'Address' => array(
'StreetLines' => '',
'City' => '',
'StateOrProvinceCode' => '',
'PostalCode' => 'postalcode',
'CountryCode' => '',
//'Residential' => false   // no way to determine this
)
);

$request['RequestedShipment']['RateRequestTypes'] = 'LIST';
$request['RequestedShipment']['PackageCount'] = '1';
$request['RequestedShipment']['RequestedPackageLineItems'] =  array(
'SequenceNumber'=>1,
'GroupPackageCount'=>1,
'Weight' => array(
'Value' => $weight,
'Units' => 'lbs'
),
'Dimensions' => array(
'Length' => $pkg_length,
'Width' => $pkg_width,
'Height' => $pkg_height,
'Units' => 'feet'
)
);

// Send the request to FedEx
$response = $client->getRates($request);

// Handle response
if ($response->HighestSeverity != 'FAILURE' && $response->HighestSeverity != 'ERROR' )
{

if(!is_array(@$response->RateReplyDetails))
{
return array(); // No Results
}

foreach ($response->RateReplyDetails as $rateReply)
{
if(in_array($rateReply->ServiceType, $service))
{

$amount = $rateReply->RatedShipmentDetails[0]->ShipmentRateDetail->TotalNetCharge->Amount;

if(is_numeric($handling_amount)) // valid entry?
{
if($handling_method=='price')
{
$amount += $handling_amount;
}
elseif($handling_method=='percent')
{
$amount += $amount * ($handling_amount/100);
}
}

$rates[$this->service_list[$rateReply->ServiceType]] = number_format($amount,2,".",",");
}
}

return $rates;
}
else
{
return array(); // fail
}

}

}

Мой контроллер

public function fedex(){
$this->load->library('fedex/fedex');
$fedex = new Fedex;
$weight = 46;
$dest_zip = '10001';
$fexed_rates = $fedex->rates();
var_dump($fexed_rates); die;
}

1

Решение

из последней вы можете увидеть линию

Строка ошибки №: $ amount = $ rateReply-> RatedShipmentDetails [0] -> ShipmentRateDetail-> TotalNetCharge-> Amount;

Правильный:
$ amount = $ rateReply-> RatedShipmentDetails-> ShipmentRateDetail-> TotalNetCharge-> Amount;

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]