生成xml:
public function crossBeltSorterDownloadOrderAction() {
header("Content-type:text/xml");
$xml ='<?xml version="1.0" encoding="UTF-8"?>';
$xml .='<result>';
if ($this->_request->isPost()) {
$userId = $this->_request->getParam('user_id');
$token = $this->_request->getParam('token');
$startTime = $this->_request->getParam('start_time');
$endTime = $this->_request->getParam('end_time');
} else {
$xml .= '<msg>错误的请求方式!</msg>';
$xml .= '</result>';
die($xml);
}
// 验证
$validate = Warehouse_Service_RegionShipType::validate($userId, $token);
if (!$validate) {
$xml .= '<msg>user/token验证信息错误!</msg>';
$xml .= '</result>';
die($xml);
}
// 获取订单数据
$resultset = Warehouse_Service_RegionShipType::getOrderData($validate, $startTime, $endTime);
if ($resultset['ask'] == 0) {
$xml .= "<msg>{$resultset['msg']}</msg>";
} else {
$xml .= '<msg>获取成功</msg>';
foreach ($resultset['data'] as $value) {
$xml .= <<<EOD
<bill>
<ordercode>{$value['order_code']}</ordercode>
<country>{$value['country_name']}</country>
<weight>{$value['awi_weight']}</weight>
<ship_type_code>{$value['shipping_method']}</ship_type_code>
<sub_ship_type>{$value['sub_shipping_method']}</sub_ship_type>
<track>{$value['tracking_number']}</track>
<last_update_time>{$value['awi_create_time']}</last_update_time>
<area>{$value['sort_area']}</area>
</bill>
EOD;
}
}
$xml .= '</result>';
die($xml);
}
结果:
<?xml version="1.0" encoding="UTF-8"?>
<result>
<msg>获取成功</msg>
<bill>
<ordercode>WA00911910240002</ordercode>
<country>阿富汗</country>
<weight>0.0190</weight>
<ship_type_code>HKBRAM</ship_type_code>
<sub_ship_type>HKBRAM</sub_ship_type>
<track>RT308772689HK</track>
<last_update_time>2019-10-24 23:50:47</last_update_time>
<area>AU</area>
</bill>
<bill>
<ordercode>WA00911901240002</ordercode>
<country>阿富汗</country>
<weight>0.0880</weight>
<ship_type_code>HKBRAM</ship_type_code>
<sub_ship_type>HKBRAM</sub_ship_type>
<track>RT308772715HK</track>
<last_update_time>2019-10-25 22:38:05</last_update_time>
<area>AU</area>
</bill>
<bill>
<ordercode>WA00911910160003</ordercode>
<country>阿富汗</country>
<weight>0.0110</weight>
<ship_type_code>HKBRAM</ship_type_code>
<sub_ship_type>HKBRAM</sub_ship_type>
<track>RT308772658HK</track>
<last_update_time>2019-10-25 03:12:17</last_update_time>
<area>AU</area>
</bill>
<bill>
<ordercode>WA00911909050001</ordercode>
<country>阿富汗</country>
<weight>0.0110</weight>
<ship_type_code>HKBRAM</ship_type_code>
<sub_ship_type>HKBRAM</sub_ship_type>
<track>RT308772692HK</track>
<last_update_time>2019-10-25 22:15:13</last_update_time>
<area>AU</area>
</bill>
<bill>
<ordercode>WA00911901240001</ordercode>
<country>阿富汗</country>
<weight>0.0120</weight>
<ship_type_code>HKBRAM</ship_type_code>
<sub_ship_type>HKBRAM</sub_ship_type>
<track>RT308772701HK</track>
<last_update_time>2019-10-25 22:27:29</last_update_time>
<area>AU</area>
</bill>
</result>
接口参数:
data => <packbill>
<country>美国</country>;
<weight>0.01</weight>;
<number>2</number>;
<area_number>1</area_number>;
<barcode>201910250001</barcode>;
<Exit>1</Exit>
<orders>;
<order_code>WA00911910240002</order_code>;
<order_code>WA00911910240003</order_code>;
</orders>;
</packbill>
解析xml:
public function crossBeltSorterBaggingAction() {
header("Content-type:text/xml");
$xml ='<?xml version="1.0" encoding="UTF-8"?>';
$xml .='<result>';
if ($this->_request->isPost()) {
$userId = $this->_request->getParam('user_id');
$token = $this->_request->getParam('token');
$xmlObj = simplexml_load_string($this->_request->getParam('data'));
} else {
$xml .= '<msg>错误的请求方式!</msg>';
$xml .= '</result>';
die($xml);
}
// 验证
$validate = Warehouse_Service_RegionShipType::validate($userId, $token);
if (!$validate) {
$xml .= '<msg>user/token验证信息错误!</msg>';
$xml .= '</result>';
die($xml);
}
$countryName = (string) $xmlObj->country;
$totalWeight = (string) $xmlObj->weight;
$orderQuantity = (integer) $xmlObj->number;
$portType = (string) $xmlObj->Exit;
$opackageCode = (string) $xmlObj->barcode;
$orderArr = (array) $xmlObj->orders;
// 创建装袋详情
$resultset = Warehouse_Service_RegionShipType::createBaggingDetail($validate, $countryName, $totalWeight, $orderQuantity, $portType, $opackageCode, $orderArr);
if ($resultset['ask'] == 0) {
$xml .= "<msg>{$resultset['msg']}</msg>";
} else {
$xml .= '<msg>OK</msg>';
$xml .= "<bgurl>{$_SERVER['HTTP_HOST']}/default/index/print-packaging-label?opackage_code={$opackageCode}</bgurl>";
if (is_array($resultset['msg'])) {
$error = implode(',', $resultset['msg']);
$xml .= "<results><msg>{$error}</msg></results>";
}
}
$xml .= '</response>';
die($xml);
}
php生成&解析xml
最新推荐文章于 2021-08-17 14:55:17 发布