[C#] 快递鸟智选物流接口API案例-PHP版本 →→→→→进入此内容的聊天室

来自 , 2019-09-13, 写在 C#, 查看 94 次.
URL http://www.code666.cn/view/573eec40
  1. //智选物流API-(PHP)demo
  2. //接入流程:
  3. //1)在快递鸟官网右上角点击注册,提交申请获取授权商户ID和API key  
  4. //2)在官网点击登录进入用户管理后台,进行实名认证,申请API开通使用
  5. //3)在官网导航点击技术支持-下载接口技术文档,按照技术文档开发后联调
  6. //4)“物流跟踪接口”对接需在用户管理后台设置回调地址,在调试平台联调测试后上线
  7.  
  8. <?php
  9. //电商ID
  10. defined('EBusinessID') or define('EBusinessID', '请申请http://kdniao.com/reg');
  11. //电商加密私钥,注意保管,不要泄漏
  12. defined('AppKey') or define('AppKey', '请申请http://kdniao.com/reg');
  13. //请求url
  14. //测试地址
  15. defined('ReqURL') or define('ReqURL', 'http://testapi.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx');
  16. //正式地址
  17. //defined('ReqURL') or define('ReqURL', 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx');
  18.  
  19.  //调用获取物流轨迹
  20. //-------------------------------------------------------------
  21.  
  22. $logisticResult = getExpRecommendByJson();
  23. echo $logisticResult;
  24.  
  25. //-------------------------------------------------------------
  26.  
  27. /**
  28.  * Json方式 智选物流
  29.  */
  30. function getExpRecommendByJson(){
  31.         $requestData= "{'MemberID':'123456','WarehouseID':'1','Detail':[{'OrderCode':'12345','IsCOD':0,'Sender':{'ProvinceName':'广东省','CityName':'广州','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Receiver':{'ProvinceName':'广东','CityName':'梅州','ExpAreaName':'丰顺','Subdistrict':'布吉街道','Address':'518000'},'Goods':[{'ProductName':'包','Volume':'','Weight':'1'}]},{'OrderCode':'12346','IsCOD':0,'Sender':{'ProvinceName':'广东省','CityName':'广州','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Receiver':{'ProvinceName':'湖南','CityName':'长沙','ExpAreaName':'龙岗区','Subdistrict':'布吉街道','Address':'518000'},'Goods':[{'ProductName':'包','Volume':'','Weight':'1'}]}]}";
  32.         $datas = array(
  33.         'EBusinessID' => EBusinessID,
  34.         'RequestType' => '2006',
  35.         'RequestData' => urlencode($requestData) ,
  36.         'DataType' => '2',
  37.     );
  38.     $datas['DataSign'] = encrypt($requestData, AppKey);
  39.         $result=sendPost(ReqURL, $datas);      
  40.        
  41.         //根据公司业务处理返回的信息......
  42.        
  43.         return $result;
  44. }
  45.  
  46. /**
  47.  * Json方式 导入运费模板
  48.  */
  49. function importCostTemplateByJson(){
  50.         $requestData= "{'MemberID':'123456','Detail':[{'ShipperCode':'YD','SendProvince':'广东','SendCity':'广州','SendExpArea':'天河','ReceiveProvince':'湖南','ReceiveCity':'长沙','ReceiveExpArea':'龙岗','FirstWeight':'1','FirstFee':'8','AdditionalWeight':'1','AdditionalFee':'10','WeightFormula':''},{'ShipperCode':'YD','SendProvince':'广东','SendCity':'广州','SendExpArea':'天河','ReceiveProvince':'湖南','ReceiveCity':'长沙','ReceiveExpArea':'雨花','FirstWeight':'1','FirstFee':'8','AdditionalWeight':'1','AdditionalFee':'10','WeightFormula':'{{w-0}-0.4}*{{{1000-w}-0.4}+1}*4.700+ {{w-1000}-0.6}*[(w-1000)/1000]*4.700)','ShippingType':'1','IntervalList':[{'StartWeight': 1.0,'EndWeight': 2.0, 'Fee': 3.0}]}]}";
  51.         $datas = array(
  52.         'EBusinessID' => EBusinessID,
  53.         'RequestType' => '2004',
  54.         'RequestData' => urlencode($requestData) ,
  55.         'DataType' => '2',
  56.     );
  57.     $datas['DataSign'] = encrypt($requestData, AppKey);
  58.         $result=sendPost(ReqURL, $datas);      
  59.        
  60.         //根据公司业务处理返回的信息......
  61.        
  62.         return $result;
  63. }
  64.  
  65. /**
  66.  *  post提交数据
  67.  * @param  string $url 请求Url
  68.  * @param  array $datas 提交的数据
  69.  * @return url响应返回的html
  70.  */
  71. function sendPost($url, $datas) {
  72.     $temps = array();  
  73.     foreach ($datas as $key => $value) {
  74.         $temps[] = sprintf('%s=%s', $key, $value);             
  75.     }  
  76.     $post_data = implode('&', $temps);
  77.     $url_info = parse_url($url);
  78.         if(empty($url_info['port']))
  79.         {
  80.                 $url_info['port']=80;  
  81.         }
  82.     $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
  83.     $httpheader.= "Host:" . $url_info['host'] . "\r\n";
  84.     $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n";
  85.     $httpheader.= "Content-Length:" . strlen($post_data) . "\r\n";
  86.     $httpheader.= "Connection:close\r\n\r\n";
  87.     $httpheader.= $post_data;
  88.     $fd = fsockopen($url_info['host'], $url_info['port']);
  89.     fwrite($fd, $httpheader);
  90.     $gets = "";
  91.         $headerFlag = true;
  92.         while (!feof($fd)) {
  93.                 if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) {
  94.                         break;
  95.                 }
  96.         }
  97.     while (!feof($fd)) {
  98.                 $gets.= fread($fd, 128);
  99.     }
  100.     fclose($fd);  
  101.    
  102.     return $gets;
  103. }
  104.  
  105. /**
  106.  * 电商Sign签名生成
  107.  * @param data 内容  
  108.  * @param appkey Appkey
  109.  * @return DataSign签名
  110.  */
  111. function encrypt($data, $appkey) {
  112.     return urlencode(base64_encode(md5($data.$appkey)));
  113. }
  114.  
  115. ?>
  116.  

回复 "快递鸟智选物流接口API案例-PHP版本"

这儿你可以回复上面这条便签

captcha