好的,我把下面的代码放在一个文件里。这只是EasyPost的部分代码
$created_rates = \EasyPost\Rate::create($shipment);
$availableRates = array();
foreach($created_rates as $rate){
$fedexR = str_replace("FEDEX_", " ", $rate->service);
$displayS = str_replace("_", " ", $fedexR);
$displayP = $rate->rate;
$availableRates[] = $displayS;
}
$_SESSION['displayRates'] = $availableRates;然后,这将使用户进入选择发货方法的下一步,它们显示如下:
<?php foreach($_SESSION['displayRates'] as $rate): ?>
<option value="<?php echo $rate; ?>"><?php echo $rate; ?></option>
<?php endforeach; ?>这将提交到以下页面:
$_SESSION['shipping_method'] = $_POST['shippingRate'];
$shipment = \EasyPost\Shipment::retrieve(array('id' => $_SESSION['shipment_id']));
$shipment->buy($shipment->rates[1]);
$_SESSION['shipment_label_url'] = $shipment->postage_label->label_url;
echo $_SESSION['shipment_label_url'];如何使用EasyPost应用编程接口发送选定的运费,以告知它购买该运费方式的邮资?我明白了
$shipment->buy($shipment->rates[1]);
我试着这样做:
$shipment->buy($shipment->rates[$_SESSION['shipping_method']]);,但结果导致根本不发送该速率。
顺便说一句,会话是像“地面”这样的实际单词,而不是一个数字。我不确定如何才能做到这一点,但如果我想让它工作,我必须这样做!
发布于 2014-12-07 20:46:36
货件上有一个名为lowest_rate的费率过滤器。您可以将args传递给它,比如运营商名称和服务名称。类似于:
$shipment->buy($shipment->lowest_rate(array('Fedex'), array($_SESSION['shipping_method'])));发布于 2015-04-13 08:12:02
首先,您需要更改输出<option value="<?php echo $rate; ?>"><?php echo $rate; ?></option>的方式
它应该更像<option value="<?php echo $rate[id]; ?>"><?php echo $rate[rate].' '.$displayS; ?></option>
您需要此rateid才能像这样购买发货标签
$shipment->buy(array('rate'=>array('id'=>$_POST[rate_id])));
然后你可以这样做:
<img src="<?php echo $shipment->postage_label->label_url; ?>">
https://stackoverflow.com/questions/21365043
复制相似问题