2017-04-03 43 views
0

我目前已经有EasyPost创建货件。当我创建货物时,它为我提供了所有可用的服务和费率。获取特定服务的费率 - EasyPost

我想动态选择服务,只返回该速率。

我最初会通过使用索引号读取数组(我猜如何描述它)。

这样做的问题是每次创建新货件时,费率数组顺序都会发生变化,因此将显示$ shipment-> rates [0] ['rate'],然后下一次首先类。

我想用“Express”创建一个货件并且只返回那个价格。

任何意见,将不胜感激。

这里是我的代码:

$name = $this->thiscustomer->cust_first . ' ' . $this->thiscustomer->cust_first; 
$street_1 = $this->thiscustomer->street_1; 
$street_2 = $this->thiscustomer->street_2; 
$city = $this->thiscustomer->city; 
$state = $this->thiscustomer->state; 
$zip = $this->thiscustomer->zip; 


$weight = $this->weight; 
    $packaging = $this->packaging; 
    $service = $this->service; 
    $caddress = $this->consultant->address; 
    $cstreet_1 = $this->consultant->street_1; 
    $cstreet_2 = $this->consultant->street_2; 
    $ccity = $this->consultant->city; 
    $cstate = $this->consultant->state; 
    $czip = $this->consultant->zip; 
    $cname = $this->consultant->first_name . ' ' . $this->consultant->last_name; 
    $cuser_id = $this->consultant->user_id; 




require_once(dirname(__FILE__) . '/lib/easypost.php'); 
\EasyPost\EasyPost::setApiKey('KUk4fZUI6YaYc1h0FiIXFw'); 


$shipment = \EasyPost\Shipment::create(array(
'to_address' => array(
"name" => $name, 
"street1" => $street_1, 
"street2" => $street_2, 
"city" => $city, 
"state" => $state, 
"zip"  => $zip 
), 
'from_address' => array(
"company" => $cname, 
"street1" => $cstreet_1, 
"street2" => $cstreet_2, 
"city" => $ccity, 
"state" => $cstate, 
"zip"  => $czip 
), 
'parcel' => array(
'weight' => $weight, 
'predefined_package'=> $packaging 
), 
'rates' => array(
    'service' => $service 
) 

)); 

echo $shipment->rates[0]['rate']. '<br>'; 

回答

0

在EasyPost的Getting Started Guide有购买特定载体+率的一个例子:

$shipment->buy($shipment->lowest_rate(array('USPS'), array('Express'))); 
+0

我不想买它,直到我知道是什么率是。 – foxtangocharlie

+0

在这种情况下,你只需要做一些数组过滤。除了选择运营商(您可以使用carrier_accounts字段),这些详细信息是业务逻辑,EasyPost有意避开其便捷方法,以便您确切地确定您想要的内容。见http://php.net/manual/en/function.array-filter.php – KFunk