获取百世汇通快递单号接口(PHP demo)
演示demo 2016-07-24 09:49:53 接口   插件   帝国CMS   快递   

msgId是唯一值,一般传时间戳,如果发送同一个msgId,则获取到的面单号为同一个,跟顺丰的区别就是,顺丰如果发送同一个订单号,会返回重复下单,百世的话就是返回同一个面单号

 

PHP Code复制内容到剪贴板
  1. /* 
  2. * 根据参数获取快递单号,并输出所有数据 
  3. * 入参(必选): 
  4. sendMan           寄件人姓名 
  5. sendManPhone      寄件人电话 
  6. sendManAddress    寄件人地址 
  7. sendProvince      寄件省 
  8. sendCity          寄件市 
  9. sendCounty        寄件区县 
  10. receiveMan        收件人姓名 
  11. receiveManPhone   收件人电话 
  12. receiveManAddress 收件人地址 
  13. receiveProvince   收件省 
  14. receiveCity       收件市 
  15. receiveCounty     收件区县 
  16. digest            签名 
  17. parternID         商家ID 
  18. parternKey 
  19.  
  20. * 入参(可选): 
  21. sendPostcode      寄件邮编 
  22. receivePostcode   收件邮编 
  23. txLogisticID      客户订单号 
  24. itemName          品名 
  25. itemWeight        重量 
  26. itemCount         数量 
  27. */  
  28. //==================================================================  
  29. //功能:     获取百世汇通面单号  
  30. //输入参数: 上面注释部分 (必选)  
  31. //==================================================================  
  32. //  
  33. //百世汇通的商家ID和密钥测试帐号  
  34. private $parternID = 'TESTJSON';  
  35. private $parternKey = '12345';   
  36. private $BESTurl = 'http://183.129.172.49/ems/api/process';  
  37.   
  38. function getBESTExpressNo($post){  
  39.     //转换参数形式  
  40.     foreach ($post as $kp=>$p) {  
  41.         $$kp = $p;  
  42.     };  
  43.       
  44.     if($func){  
  45.         unset($post['func']);  
  46.     }  
  47.       
  48.     if($msgId){  
  49.         $msgId = $msgId;  
  50.         unset($post['msgId']);  
  51.     }  
  52.     else{  
  53.         $msgId = time();  
  54.     }  
  55.   
  56.     $arr=array(  
  57.         "deliveryConfirm"=>false,  
  58.         "EDIPrintDetailList"=> [$post]  
  59.     );  
  60.   
  61.     $bizData = json_encode($arr);  
  62.     $digest = $bizData.$this->parternKey;  
  63.     $digest = base64_encode(md5($digest,true));  
  64.     $res = [  
  65.         'bizData'    =>  $bizData,  
  66.         'digest'     =>  $digest,  
  67.         'msgId'      =>  $msgId,  
  68.         'parternID'  =>  $this->parternID,  
  69.         'serviceType'=> 'BillPrintRequest',  
  70.     ];  
  71.   
  72.     // print_r($res);  
  73.     $data = $this->post($this->BESTurl,$res);  
  74.       
  75.     if(!$data){  
  76.         return Message(400,'error','获取超时,请重试','');  
  77.     }  
  78.   
  79.     $res = [  
  80.         'msgId'=> strval($msgId),  
  81.         'BestDetail' => $data  
  82.     ];  
  83.     return Message(200,'success','',$res);   
  84.   
  85. }  
  86.   
  87.   
  88. // PHP POST请求url  
  89. public static function post($url$data){//file_get_content  
  90.     $postdata = http_build_query(  
  91.         $data  
  92.     );  
  93.     $opts = array('http' =>  
  94.         array(  
  95.           'method'  => 'POST',  
  96.           'header'  => 'Content-type: application/x-www-form-urlencoded',  
  97.           'content' => $postdata  
  98.         )  
  99.     );   
  100.     $context = stream_context_create($opts);  
  101.     $result = file_get_contents($url, false, $context);  
  102.     return $result;  
  103. }  

 

 

本文来自于:http://www.yoyo88.cn/demo/23.html

Powered by yoyo苏ICP备15045725号-1