$id],['expressname','expresssn','tel']) OR Commons::sRenderError('暂无物流信息'); $logisticsInfo = self::codeComparisonTable($info['expressname'],'alias'); #3、生成请求内容 $requestDataParams = [ 'OrderCode' => '' ,//订单编号 'ShipperCode' => trim($logisticsInfo['code']) ,//快递公司编码 'LogisticCode' => trim($info['expresssn']) ,//物流单号 ]; if(trim($logisticsInfo['code']) == 'SF') $requestDataParams['CustomerName'] = substr($info['tel'],-4); if(trim($logisticsInfo['code']) == 'JD') $requestDataParams['CustomerName'] = trim($set['jd_code']); $requestData = json_encode($requestDataParams); $data = [ 'EBusinessID' => $userId, 'RequestType' => $requestType,//1002=免费版本;8001=付费版本 'RequestData' => urlencode($requestData) , 'DataType' => '2', ]; #4、生成请求签名 $data['DataSign'] = urlencode(base64_encode(md5($requestData.$AppKey))); #4、生成请求header头部信息 $temps = array(); foreach ($data as $key => $value) { $temps[] = sprintf('%s=%s', $key, $value); } $post_data = implode('&', $temps); $url_info = parse_url($ReqURL); if(empty($url_info['port'])) { $url_info['port']=80; } $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n"; $httpheader.= "Host:" . $url_info['host'] . "\r\n"; $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n"; $httpheader.= "Content-Length:" . strlen($post_data) . "\r\n"; $httpheader.= "Connection:close\r\n\r\n"; $httpheader.= $post_data; #4、请求获取物流信息 return curlPostRequest($ReqURL,$data,$httpheader); } /** * Comment: 通过类型匹配物流公司信息 * Author: zzw * Date: 2019/10/8 16:56 * @param $name string 物流公司配置名称(name=匹配名称,alias=匹配别名,code=匹配编码) * @param $type int 匹配类型 * @param $getArray bool 是否返回所有物流公司信息数组 * @return array */ public static function codeComparisonTable($name = '',$type = 0,$getArray = false){ #1、生成匹配项数组 $data = [ [ 'name' => '顺丰' , 'alias' => 'shunfeng' , 'code' => 'SF' ] , [ 'name' => '百世快递' , 'alias' => 'baishikuaidi' , 'code' => 'HTKY' ] , [ 'name' => '中通快递' , 'alias' => 'zhongtong' , 'code' => 'ZTO' ] , [ 'name' => '申通快递' , 'alias' => 'shentong' , 'code' => 'STO' ] , [ 'name' => '圆通速递' , 'alias' => 'yuantong' , 'code' => 'YTO' ] , [ 'name' => '韵达速递' , 'alias' => 'yundasd' , 'code' => 'YD' ] , [ 'name' => '邮政快递包裹' , 'alias' => 'youzhengguonei' , 'code' => 'YZPY' ] , [ 'name' => 'EMS' , 'alias' => 'ems' , 'code' => 'EMS' ] , [ 'name' => '天天快递' , 'alias' => 'tiantian' , 'code' => 'HHTT' ] , [ 'name' => '京东快递' , 'alias' => 'jd' , 'code' => 'JD' ] , [ 'name' => '优速快递' , 'alias' => 'youshuwuliu' , 'code' => 'UC' ] , [ 'name' => '德邦快递' , 'alias' => 'debangwuliu' , 'code' => 'DBL' ] , [ 'name' => '极兔快递' , 'alias' => 'JTSD' , 'code' => 'JTSD' ] , [ 'name' => '宅急送' , 'alias' => 'zhaijisong' , 'code' => 'ZJS' ] , [ 'name' => 'aae全球专递' , 'alias' => 'aae' , 'code' => 'AAE' ] , [ 'name' => '安捷快递' , 'alias' => 'anjie' , 'code' => 'AJ' ] , [ 'name' => 'bht' , 'alias' => 'bht' , 'code' => 'BHT' ] , [ 'name' => '百福东方国际物流' , 'alias' => 'baifudongfang' , 'code' => 'BFDF' ] , [ 'name' => '中国东方(COE)' , 'alias' => 'coe' , 'code' => 'COE' ] , [ 'name' => '中国东方(COE)' , 'alias' => 'coe' , 'code' => 'COE' ] , [ 'name' => '大田物流' , 'alias' => 'datianwuliu' , 'code' => 'DTWL' ] , [ 'name' => 'dhl' , 'alias' => 'dhl' , 'code' => 'DHL' ] , [ 'name' => 'dpex' , 'alias' => 'dpex' , 'code' => 'DPEX' ] , [ 'name' => 'd速快递' , 'alias' => 'dsukuaidi' , 'code' => 'DSWL' ] , [ 'name' => '递四方' , 'alias' => 'disifang' , 'code' => 'D4PX' ] , [ 'name' => 'fedex(国外)' , 'alias' => 'fedex' , 'code' => 'FEDEX_GJ' ] , [ 'name' => 'fedex(国外)' , 'alias' => 'fedex' , 'code' => 'FEDEX_GJ' ] , [ 'name' => '飞康达物流' , 'alias' => 'feikangda' , 'code' => 'FKD' ] , [ 'name' => '广东邮政物流' , 'alias' => 'guangdongyouzhengwuliu' , 'code' => 'GDEMS' ] , [ 'name' => '共速达' , 'alias' => 'gongsuda' , 'code' => 'GSD' ] , [ 'name' => '恒路物流' , 'alias' => 'hengluwuliu' , 'code' => 'HLWL' ] , [ 'name' => '华夏龙物流' , 'alias' => 'huaxialongwuliu' , 'code' => 'HXLWL' ] , [ 'name' => '佳怡物流' , 'alias' => 'jiayiwuliu' , 'code' => 'JYWL' ] , [ 'name' => '京广速递' , 'alias' => 'jinguangsudikuaijian' , 'code' => 'JGSD' ] , [ 'name' => '急先达' , 'alias' => 'jixianda' , 'code' => 'JXD' ] , [ 'name' => '佳吉物流' , 'alias' => 'jjwl' , 'code' => 'CNEX' ] , [ 'name' => '加运美物流' , 'alias' => 'jymwl' , 'code' => 'JYM' ] , [ 'name' => '晋越快递' , 'alias' => 'jykd' , 'code' => 'JYKD' ] , [ 'name' => '快捷速递' , 'alias' => 'kuaijiesudi' , 'code' => 'DJKJWL' ] , [ 'name' => '联邦快递(国内)' , 'alias' => 'lianb' , 'code' => 'FEDEX' ] , [ 'name' => '联邦快递(国内)' , 'alias' => 'lianb' , 'code' => 'FEDEX' ] , [ 'name' => '联昊通物流' , 'alias' => 'lianhaowuliu' , 'code' => 'LHT' ] , [ 'name' => '龙邦物流' , 'alias' => 'longbanwuliu' , 'code' => 'LB' ] , [ 'name' => '立即送' , 'alias' => 'lijisong' , 'code' => 'LJSKD' ] , [ 'name' => '民航快递' , 'alias' => 'minghangkuaidi' , 'code' => 'MHKD' ] , [ 'name' => '门对门' , 'alias' => 'menduimen' , 'code' => 'MDM' ] , [ 'name' => 'OCS' , 'alias' => 'ocs' , 'code' => 'OCS' ] , [ 'name' => '全晨快递' , 'alias' => 'quanchenkuaidi' , 'code' => 'QCKD' ] , [ 'name' => '全日通快递' , 'alias' => 'quanritongkuaidi' , 'code' => 'QRT' ] , [ 'name' => '全一快递' , 'alias' => 'quanyikuaidi' , 'code' => 'UAPEX' ] , [ 'name' => '如风达' , 'alias' => 'rufengda' , 'code' => 'RFD' ] , [ 'name' => '速尔物流' , 'alias' => 'sue' , 'code' => 'SURE' ] , [ 'name' => '盛丰物流' , 'alias' => 'shengfeng' , 'code' => 'SFWL' ] , [ 'name' => '赛澳递' , 'alias' => 'saiaodi' , 'code' => 'SAD' ] , [ 'name' => '天地华宇' , 'alias' => 'tiandihuayu' , 'code' => 'HOAU' ] , [ 'name' => 'tnt' , 'alias' => 'tnt' , 'code' => 'TNT' ] , [ 'name' => 'ups' , 'alias' => 'ups' , 'code' => 'UPS' ] , [ 'name' => '万家物流' , 'alias' => 'wanjiawuliu' , 'code' => 'WJWL' ] , [ 'name' => '万象物流' , 'alias' => 'wxwl' , 'code' => 'WXWL' ] , [ 'name' => '信丰物流' , 'alias' => 'xinfengwuliu' , 'code' => 'XFEX' ] , [ 'name' => '亚风速递' , 'alias' => 'yafengsudi' , 'code' => 'YFSD' ] , [ 'name' => '邮政国际包裹挂号信' , 'alias' => 'youzhengguoji' , 'code' => 'GJYZ' ] , [ 'name' => '远成物流' , 'alias' => 'yuanchengwuliu' , 'code' => 'YCWL' ] , [ 'name' => '运通快递' , 'alias' => 'yuntongkuaidi' , 'code' => 'YTKD' ] , [ 'name' => '源安达' , 'alias' => 'yad' , 'code' => 'YADEX' ] , [ 'name' => '中铁快运' , 'alias' => 'zhongtiekuaiyun' , 'code' => 'ZTWL' ] , [ 'name' => '中邮物流' , 'alias' => 'zhongyouwuliu' , 'code' => 'ZYKD' ] , [ 'name' => '芝麻开门' , 'alias' => 'zhimakaimen' , 'code' => 'ZMKM' ] , [ 'name' => '韵达快运' , 'alias' => 'yunda' , 'code' => 'YDKY' ] , [ 'name' => '其他快递' , 'alias' => '' , 'code' => '' ] , ]; if($getArray) return $data;//返回所有物流公司信息数组 #2、根据匹配类型进行数组转码,将对应类型的键值转为键名 $key = array_column($data,trim($type)); $newData = array_combine($key,$data); #2、返回匹配内容 return $newData[$name]; } }