它山之石可以攻玉

键盘上的生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP + TrackingMore物流信息跟踪

Posted on 2019-12-27 09:27  陈达辉  阅读(455)  评论(0编辑  收藏  举报

TrackingMore的PHP类:

<?php

namespace system\library;

class TrackingMore{ 
 
    const API_BASE_URL             = 'http://api.trackingmore.com/v2/';
    const ROUTE_CARRIERS           = 'carriers/';
	const ROUTE_CARRIERS_DETECT    = 'carriers/detect';
    const ROUTE_TRACKINGS          = 'trackings';
	const ROUTE_LIST_ALL_TRACKINGS = 'trackings/get';
	const ROUTE_CREATE_TRACKING    = 'trackings/post';
    const ROUTE_TRACKINGS_BATCH    = 'trackings/batch'; 
	const ROUTE_TRACKINGS_REALTIME = 'trackings/realtime';
	const ROUTE_TRACKINGS_RELETE   = 'trackings/delete';
	const ROUTE_TRACKINGS_UPDATE   = 'trackings/update';
	const ROUTE_TRACKINGS_GETUSEINFO = 'trackings/getuserinfo';
	const ROUTE_TRACKINGS_GETSTATUS = 'trackings/getstatusnumber';
	const ROUTE_TRACKINGS_NOTUPDATE = 'trackings/notupdate';
	const ROUTE_TRACKINGS_REMOTE   = 'trackings/remote';
	const ROUTE_TRACKINGS_COSTTIME   = 'trackings/costtime';
	const ROUTE_TRACKINGS_UPDATEMORE   = 'trackings/updatemore';
    protected $apiKey              = TRACKING_MORE_KEY;


    protected function _getApiData($route, $method = 'GET', $sendData = array()){
		$method     = strtoupper($method);
        $requestUrl = self::API_BASE_URL.$route;
        $curlObj    = curl_init();
        curl_setopt($curlObj, CURLOPT_URL,$requestUrl);
		if($method == 'GET'){
            curl_setopt($curlObj, CURLOPT_HTTPGET,true);
        }elseif($method == 'POST'){
            curl_setopt($curlObj, CURLOPT_POST, true);
        }elseif ($method == 'PUT'){
            curl_setopt($curlObj, CURLOPT_CUSTOMREQUEST, "PUT");
        }else{
			curl_setopt($curlObj, CURLOPT_CUSTOMREQUEST, $method); 
		}
			
        curl_setopt($curlObj, CURLOPT_CONNECTTIMEOUT, 10);
        curl_setopt($curlObj, CURLOPT_TIMEOUT, 90);

        curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curlObj, CURLOPT_HEADER, 0);
        $headers = array(
            'Trackingmore-Api-Key: ' . $this->apiKey,
            'Content-Type: application/json',
        ); 
        if($sendData){
            $dataString = json_encode($sendData);
            curl_setopt($curlObj, CURLOPT_POSTFIELDS, $dataString);
            $headers[] = 'Content-Length: ' . strlen($dataString);
        }
        curl_setopt($curlObj, CURLOPT_HTTPHEADER, $headers);
        $response = curl_exec($curlObj);
        curl_close($curlObj);
        unset($curlObj); 
        return $response;
    }
	
	

    // List all carriers
    public function getCarrierList(){
        $returnData = array();
        $requestUrl = self::ROUTE_CARRIERS; 
        $result = $this->_getApiData($requestUrl, 'GET');
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }
	
	/*Detect a carrier by tracking code
	* @param string $trackingNumber  Tracking number
    * @return array 	
	*/
	public function detectCarrier($trackingNumber)
    {
        $returnData = array();
        $requestUrl = self::ROUTE_CARRIERS_DETECT; 
		$sendData['tracking_number'] = $trackingNumber;
        $result = $this->_getApiData($requestUrl, 'POST',$sendData); 
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }
	
    /**
	* List all trackings
	* @access public
	* @param int $numbers Tracking numbers,eg:$numbers = LY044217709CN,UG561422482CN (optional)
	* @param int $orders Tracking order,eg:$orders = #123 (optional)
	* @param int $page  Page to display (optional)
	* @param int $limit Items per page (optional)
	* @param int $createdAtMin Start date and time of trackings created (optional)
	* @param int $createdAtMax End date and time of trackings created (optional)
	* @param int $update_time_min Start date and time of trackings updated (optional)
	* @param int $update_time_max End date and time of trackings updated (optional)
	* @param int $order_created_time_min Start date and time of order created (optional)
	* @param int $order_created_time_max End date and time of order created (optional)
	* @param int $lang Language,eg:$lang=cn(optional)
	* @return array
	*/  
	public function getTrackingsList($numbers = "",$orders = "",$page = 1,$limit = 100,$createdAtMin = 0,$createdAtMax = 0,$update_time_min = 0,$update_time_max = 0,$order_created_time_min = 0,$order_created_time_max = 0,$lang = ""){
        $returnData = array();
		$sendData   = array();
        $requestUrl = self::ROUTE_LIST_ALL_TRACKINGS; 
		$createdAtMax = !empty($createdAtMax)?$createdAtMax:time();
        $update_time_max = !empty($update_time_max)?$update_time_max:time();
        $order_created_time_max = !empty($order_created_time_max)?$order_created_time_max:time();
		$sendData['page']           = $page;
		$sendData['limit']          = $limit;
		$sendData['created_at_min'] = $createdAtMin;
		$sendData['created_at_max'] = $createdAtMax;
		$sendData['update_time_min'] = $update_time_min;
		$sendData['update_time_max'] = $update_time_max;
		$sendData['order_created_time_min'] = $order_created_time_min;
		$sendData['order_created_time_max'] = $order_created_time_max;
		$sendData['lang'] = $lang;
		$sendData['numbers'] = $numbers;
		$sendData['orders'] = $orders;
        $result = $this->_getApiData($requestUrl.'?'.http_build_query($sendData), 'GET', $sendData=array());
        if ($result) {
            $returnData = json_decode($result,1);
        }
        return $returnData;
    }
	
	/**
	* Create a tracking item
	* @access public 
	* @param string $trackingNumber  Tracking number 
	* @param string $carrierCode Carrier code
	* @param array $extraInfo (Title,Customer name,email,order ID,customer phone,order create time,destination code,tracking ship date,tracking postal code,language) (optional)
	* @return array 
	*/  
	public function createTracking($carrierCode,$trackingNumber,$extraInfo = array()){
        $returnData = array();
		$sendData   = array();
        $requestUrl = self::ROUTE_CREATE_TRACKING; 
		
		$sendData['tracking_number']      = $trackingNumber;
		$sendData['carrier_code']         = $carrierCode;
		$sendData['title']                = !empty($extraInfo['title'])?$extraInfo['title']:null;
		$sendData['logistics_channel']    = !empty($extraInfo['logistics_channel'])?$extraInfo['logistics_channel']:null;
		$sendData['customer_name']        = !empty($extraInfo['customer_name'])?$extraInfo['customer_name']:null;
		$sendData['customer_email']       = !empty($extraInfo['customer_email'])?$extraInfo['customer_email']:null;
		$sendData['order_id']             = !empty($extraInfo['order_id'])?$extraInfo['order_id']:null;
		$sendData['customer_phone']       = !empty($extraInfo['customer_phone'])?$extraInfo['customer_phone']:null;
		$sendData['order_create_time']    = !empty($extraInfo['order_create_time'])?$extraInfo['order_create_time']:null;
		$sendData['destination_code']     = !empty($extraInfo['destination_code'])?$extraInfo['destination_code']:'';
		$sendData['tracking_ship_date']   = !empty($extraInfo['tracking_ship_date'])?$extraInfo['tracking_ship_date']:null;
		$sendData['tracking_postal_code'] = !empty($extraInfo['tracking_postal_code'])?$extraInfo['tracking_postal_code']:"";
		$sendData['lang']                 = !empty($extraInfo['lang'])?$extraInfo['lang']:"en";

        $result = $this->_getApiData($requestUrl, 'POST', $sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }
	
	/**
	* Create multiple trackings.
	* @access public 
	* @param  array $multipleData (Multiple tracking number,carrier code,title,customer name,customer email,order id,destination code,customer phone,order create time,tracking ship date,tracking postal code,special number destination,language)
	* @return array 
	*/  
	public function createMultipleTracking($multipleData){
        $returnData = array();
		$sendData   = array();
        $requestUrl = self::ROUTE_TRACKINGS_BATCH; 
		if(!empty($multipleData)){
			foreach($multipleData as $val){
				$items                         = array();
			    $items['tracking_number']      = !empty($val['tracking_number'])?$val['tracking_number']:null;
				$items['carrier_code']         = !empty($val['carrier_code'])?$val['carrier_code']:null;
				$items['title']                = !empty($val['title'])?$val['title']:null;
				$items['logistics_channel']    = !empty($val['logistics_channel'])?$val['logistics_channel']:null;
				$items['customer_name']        = !empty($val['customer_name'])?$val['customer_name']:null;
				$items['customer_email']       = !empty($val['customer_email'])?$val['customer_email']:null;
				$items['order_id']             = !empty($val['order_id'])?$val['order_id']:null;
				$items['destination_code']     = !empty($val['destination_code'])?$val['destination_code']:null;
				$items['customer_phone']       = !empty($val['customer_phone'])?$val['customer_phone']:null;
				$items['order_create_time']    = !empty($val['order_create_time'])?$val['order_create_time']:null;
				$items['tracking_ship_date']   = !empty($val['tracking_ship_date'])?$val['tracking_ship_date']:null;
				$items['tracking_postal_code'] = !empty($val['tracking_postal_code'])?$val['tracking_postal_code']:null;
				$items['specialNumberDestination'] = !empty($val['specialNumberDestination'])?$val['specialNumberDestination']:null;
				$items['lang']                 = !empty($val['lang'])?$val['lang']:'en';
                $sendData[]                    = $items;
			}
		}
		
        $result = $this->_getApiData($requestUrl, 'POST', $sendData); 
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }
	
	
	/**
	* Get tracking results of a single tracking
	* @access public 
	* @param string $trackingNumber  Tracking number 
	* @param string $carrierCode Carrier code
	* @param string $lang language
	* @return array
	*/  
	public function getSingleTrackingResult($carrierCode,$trackingNumber,$lang=''){
        $returnData = array();
        $requestUrl = self::ROUTE_TRACKINGS.'/'.$carrierCode.'/'.$trackingNumber.'/'.$lang;
        $result = $this->_getApiData($requestUrl, 'GET');
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }
	
	/**
	* Update Tracking item
	* @access public 
	* @param string $trackingNumber  Tracking number 
	* @param string $carrierCode Carrier code
	* @param array $extraInfo (Title,Customer name,email,order ID,customer phone,destination code,status) (optional)
	* @return array 
	*/  
	public function updateTrackingItem($carrierCode,$trackingNumber,$extraInfo){
        $returnData = array();
        $requestUrl = self::ROUTE_TRACKINGS.'/'.$carrierCode.'/'.$trackingNumber;
		$sendData['title']           = !empty($extraInfo['title'])?$extraInfo['title']:null;
		$sendData['logistics_channel'] = !empty($extraInfo['logistics_channel'])?$extraInfo['logistics_channel']:null;
		$sendData['customer_name']   = !empty($extraInfo['customer_name'])?$extraInfo['customer_name']:null;
		$sendData['customer_email']  = !empty($extraInfo['customer_email'])?$extraInfo['customer_email']:null;
		$sendData['customer_phone']  = !empty($extraInfo['customer_phone'])?$extraInfo['customer_phone']:null;
		$sendData['order_id']        = !empty($extraInfo['order_id'])?$extraInfo['order_id']:null;
		$sendData['destination_code']= !empty($extraInfo['destination_code'])?$extraInfo['destination_code']:null;
		$sendData['status']= !empty($extraInfo['status'])?$extraInfo['status']:null;
        $result = $this->_getApiData($requestUrl, 'PUT',$sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
	* Delete a tracking item
	* @access public 
	* @param string $trackingNumber  Tracking number 
	* @param string $carrierCode Carrier code
	* @return array 
	*/  
	public function deleteTrackingItem($carrierCode,$trackingNumber){
        $returnData = array();
        $requestUrl = self::ROUTE_TRACKINGS.'/'.$carrierCode.'/'.$trackingNumber; 
        $result = $this->_getApiData($requestUrl, 'DELETE'); 
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }
	
	/**
	* Get realtime tracking results of a single tracking
	* @access public 
	* @param string $trackingNumber  Tracking number 
	* @param string $carrierCode Carrier code
	* @param array  $extraInfo (Destination_code,Tracking_ship_date Customer_email,Tracking_postal_code,SpecialNumberDestination,order,lang) (optional)
	* @return array 
	*/  
	public function getRealtimeTrackingResults($carrierCode,$trackingNumber,$extraInfo=array()){
        $returnData = array();
        $requestUrl = self::ROUTE_TRACKINGS_REALTIME; 
		$sendData['tracking_number'] = $trackingNumber;
		$sendData['carrier_code']    = $carrierCode;
		$sendData['destination_code']           = !empty($extraInfo['destination_code'])?$extraInfo['destination_code']:null;
		$sendData['tracking_ship_date']   = !empty($extraInfo['tracking_ship_date'])?$extraInfo['tracking_ship_date']:null;
		$sendData['order_create_time']  = !empty($extraInfo['order_create_time'])?$extraInfo['order_create_time']:null;
		$sendData['tracking_postal_code']        = !empty($extraInfo['tracking_postal_code'])?$extraInfo['tracking_postal_code']:null;
		$sendData['specialNumberDestination']        = !empty($extraInfo['specialNumberDestination'])?$extraInfo['specialNumberDestination']:null;
		$sendData['order']        = !empty($extraInfo['order'])?$extraInfo['order']:null;
		$sendData['lang']        = !empty($extraInfo['lang'])?$extraInfo['lang']:null;
        $result = $this->_getApiData($requestUrl, 'POST',$sendData); 
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
     * delete multiple tracking
     * @access public
     * @param array  $multipleData (tracking number,carrier code)
     * @return array
     */
    public function deleteMultipleTracking($multipleData){
        $returnData = array();
        $sendData   = array();
        $requestUrl = self::ROUTE_TRACKINGS_RELETE;
        if(!empty($multipleData)){
            foreach ($multipleData as $val){
                $items                    = array();
                $items['tracking_number'] = !empty($val['tracking_number'])?$val['tracking_number']:null;
                $items['carrier_code']    = !empty($val['carrier_code'])?$val['carrier_code']:null;
                $sendData[]               = $items;
            }
        }
        $result = $this->_getApiData($requestUrl, 'POST', $sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
     * update carrier code
     * @access public
     * @param string $trackingNumber  Tracking number
     * @param string $carrierCode Carrier code
     * @param string $carrierCode Update carrier code
     * @return array
     */
    public function updateCarrierCode($tracking_number,$carrier_code,$update_carrier_code){
        $returnData = array();
        $sendData   = array();
        $requestUrl = self::ROUTE_TRACKINGS_UPDATE;
        $sendData["tracking_number"] = $tracking_number;
        $sendData["carrier_code"] = $carrier_code;
        $sendData["update_carrier_code"] = $update_carrier_code;
        $result = $this->_getApiData($requestUrl, 'POST', $sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
     * update carrier code
     * @access public
     * @return array
     */
    public function getUserInfoBalance(){
        $returnData = array();
        $requestUrl = self::ROUTE_TRACKINGS_GETUSEINFO;
        $result = $this->_getApiData($requestUrl, 'GET');
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
     * update carrier code
     * @access public
     * @param int $created_at_min Start date and time of trackings created (optional)
     * @param int $created_at_max End date and time of trackings created (optional)
     * @param int $order_created_time_min Start date and time of order created (optional)
     * @param int $order_created_time_max End date and time of order created (optional)
     * @return array
     */
    public function getStatusNumberCount($created_at_min = 0,$created_at_max = 0,$order_created_time_min = 0,$order_created_time_max = 0){
        $returnData = array();
        $sendData = array();
        $requestUrl = self::ROUTE_TRACKINGS_GETSTATUS;
        $sendData["created_at_min"] = !empty($created_at_min)?$created_at_min:null;
        $sendData["created_at_max"] = !empty($created_at_max)?$created_at_max:time();
        $sendData["order_created_time_min"] = !empty($order_created_time_min)?$order_created_time_min:null;
        $sendData["order_created_time_max"] = !empty($order_created_time_max)?$order_created_time_max:time();
        $result = $this->_getApiData($requestUrl, 'GET',$sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
     * update carrier code
     * @access public
     * @param array $multipleData (tracking number,carrier code)
     * @param string $carrierCode Carrier code
     * @return array
     */
    public function setNumberNotUpdate($multipleData){
        $returnData = array();
        $sendData = array();
        $requestUrl = self::ROUTE_TRACKINGS_NOTUPDATE;
        if(!empty($multipleData)){
            foreach ($multipleData as $val){
                $items                    = array();
                $items['tracking_number'] = !empty($val['tracking_number'])?$val['tracking_number']:null;
                $items['carrier_code']    = !empty($val['carrier_code'])?$val['carrier_code']:null;
                $sendData[]               = $items;
            }
        }
        $result = $this->_getApiData($requestUrl, 'POST',$sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
     * update carrier code
     * @access public
     * @param array $multipleData (Country two code,Post code or city name,company),eg:array(0=>array("CN","518131","DHL"));
     * @return array
     */
    public function searchDeliveryIsRemote($multipleData){
        $returnData = array();
        $sendData = array();
        $requestUrl = self::ROUTE_TRACKINGS_REMOTE;
        if(!empty($multipleData)){
            foreach ($multipleData as $val){
                $items              = array();
                $items['country']   = !empty($val['country'])?$val['country']:null;
                $items['postcode']  = !empty($val['postcode'])?$val['postcode']:null;
                $items['company']  = !empty($val['company'])?$val['company']:null;
                $sendData[]         = $items;
            }
        }
        $result = $this->_getApiData($requestUrl, 'POST',$sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
     * update carrier code
     * @access public
     * @param array $multipleData (Country two code,Post code or city name,company),eg:array(0=>array("CN","518131","DHL"));
     * @return array
     */
    public function getCarrierCostTime($multipleData){
        $returnData = array();
        $sendData = array();
        $requestUrl = self::ROUTE_TRACKINGS_COSTTIME;
        if(!empty($multipleData)){
            foreach ($multipleData as $val){
                $items              = array();
                $items['carrier_code']   = !empty($val['carrier_code'])?$val['carrier_code']:null;
                $items['original']  = !empty($val['original'])?$val['original']:null;
                $items['destination']  = !empty($val['destination'])?$val['destination']:null;
                $sendData[]         = $items;
            }
        }
        $result = $this->_getApiData($requestUrl, 'POST',$sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

    /**
     * update carrier code
     * @access public
     * @param array $multipleData (Country two code,Post code or city name,company),eg:array(0=>array("CN","518131","DHL"));
     * @return array
     */
    public function updateMultipleTrackItem($multipleData){
        $returnData = array();
        $sendData = array();
        $requestUrl = self::ROUTE_TRACKINGS_UPDATEMORE;
        if(!empty($multipleData)){
            foreach ($multipleData as $val){
                $items              = array();
                $items['tracking_number']   = !empty($val['tracking_number'])?$val['tracking_number']:null;
                $items['carrier_code']  = !empty($val['carrier_code'])?$val['carrier_code']:null;
                $items['title']  = !empty($val['title'])?$val['title']:null;
                $items['logistics_channel'] = !empty($val['logistics_channel'])?$val['logistics_channel']:null;
                $items['customer_name']  = !empty($val['customer_name'])?$val['customer_name']:null;
                $items['customer_email']  = !empty($val['customer_email'])?$val['customer_email']:null;
                $items['order_id']  = !empty($val['order_id'])?$val['order_id']:null;
                $items['destination_code']  = !empty($val['destination_code'])?$val['destination_code']:null;
                $items['status']  = !empty($val['status'])?$val['status']:null;
                $sendData[]         = $items;
            }
        }
        $result = $this->_getApiData($requestUrl, 'POST',$sendData);
        if ($result) {
            $returnData = json_decode($result, true);
        }
        return $returnData;
    }

}

  建立TrackingModel:

<?php
/**
 * @link http://www.joinf.com
 * @copyright Copyright (C) 2017 joinf.com. All rights reserved.
 */

namespace site\model;

use system\library\TrackingMore;

/**
 * TrackingMore物流追踪
 */
class TrackingModel extends \site\component\Model
{
	private $_shipping;
	private $_tracking;
	
	/**
	 * 构造函数
	 * @access public
	 * @return void
	 */
	public function __construct()
	{
		$this->_tracking = new TrackingMore();
	}
	
	/**
	 * 创建单个运单号
	 *
	 * @access public
	 * @return void
	 */
	public function createTracking($data)
	{
		$extraInfo                         = array();
		$extraInfo['title']                = $data['title']; //商品标题
		$extraInfo['logistics_channel']    = $data['logistics_channel']; //物流渠道
		$extraInfo['customer_name']        = $data['receiver']; //客户名称
		$extraInfo['customer_email']       = $data['email']; //客户邮箱
		$extraInfo['order_id']             = $data['order_no']; //订单号
		$extraInfo['customer_phone']       = $data['mobile_prefix'].' '.$data['mobile']; //客户电话号码
		$extraInfo['order_create_time']    = date('Y-m-d H:i:s', $data['created_at']); //下单时间
		$extraInfo['destination_code']     = $data['destination_code']; //目的国二字简码
		$extraInfo['tracking_ship_date']   = time(); //寄件日期,格式为20181001(年月日),部分运输商(如德国邮政)要求填写发件日期才可以查询物流信息,故查询此类运输商时需要传此参数.
		$extraInfo['tracking_postal_code'] = $data['zip_code']; //收件地邮编,部分运输商(如Mondial Relay法国快递)要求填写邮编才可以查询物流信息,故查询此类运输商时需要传该参数.
		$extraInfo['lang']                 = $data['lang']; //返回语言类型 (仅当快递官网支持时有用),用户如果在创建跟踪目标时没有传语言参数,那么请求到的数据将为默认语言数据(en 或 cn).
		$track = $this->_tracking->createTracking($data['shipping_code'],$data['waybill_number'],$extraInfo);
		 
		return $track;
	}
	
	/**
	 * 获取单个运单号物流信息
	 * @param shipping_code=物流公司code,waybill_number=运单号,lang=语言
	 * @access public
	 * @return void
	 */
	public function getSingleTrackingResult($data)
	{
		$track = $this->_tracking->getSingleTrackingResult($data['shipping_code'],$data['waybill_number'],$data['lang']);
		return $track;
	}
	
	/**
	 * 删除单个运单号
	 * @param shipping_code=物流公司code,waybill_number=运单号
	 * @access public
	 * @return void
	 */
	public function deleteTrackingItem($data)
	{
		$track = $this->_tracking->deleteTrackingItem($data['shipping_code'],$data['waybill_number']);
		return $track;
	}
	
	/**
	 * 删除多个运单号
	 * @param shipping_code=物流公司code,waybill_number=运单号
	 * @access public
	 * @return void
	 */
	public function deleteMultipleTracking($return)
	{
		foreach ($return as $key => $value){
			$data[] = array(
					"tracking_number"=>$value['waybill_number'],
					"carrier_code"   =>$value['shipping_code']
			);
		}
		$track = $this->_tracking->deleteMultipleTracking($data);
		return $track;
	}
	
}

  调用方法:

//创建运单号
$trackingModel = new TrackingModel();
$track = $trackingModel->createTracking($data);

  

//获取物流信息
$trackingModel = new TrackingModel();
$track = $trackingModel->getSingleTrackingResult($t_data);