單獨對接每個快遞公司的api會比較麻煩,一般都選擇第三方來對接 服務來源: 阿裡雲 付費(0.01元100次) 購買服務後,商家提供AppKey、AppSecret、AppCode 購買物流查詢介面api的服務,到官網上能找到各種程式語言對應的demo,稍微修改下就能正常使用.重溫下curl以及aj ...
單獨對接每個快遞公司的api會比較麻煩,一般都選擇第三方來對接
服務來源: 阿裡雲 付費(0.01元100次) 購買服務後,商家提供AppKey、AppSecret、AppCode
購買物流查詢介面api的服務,到官網上能找到各種程式語言對應的demo,稍微修改下就能正常使用.重溫下curl以及ajax的使用.
logistics.php
$host = "http://ali-deliver.showapi.com";
$path = "/showapi_expInfo";
$method = "GET";
$appcode = "你的APPCODE";
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
$querys = "com=auto&nu=".$_POST['nu']; //設置com為auto自動識別快遞公司,nu是前臺輸入的快遞單號
$bodys = "";
$url = $host . $path . "?" . $querys;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
if (1 == strpos("$".$host, "https://"))
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
$return = curl_exec($curl);
echo $return;
用php的CURL庫模擬瀏覽器動作把請求的url和header傳到伺服器,執行後返回快遞物流的詳細信息,在前端顯示
logistics.html
<html>
<head>
<script src="./jquery-3.1.1.min.js"></script>
<script type="text/javascript">
function loadXMLDoc()
{
$.ajax({
type:'POST',
url:'./test.php',
data:{
nu:$('#nu').val()
},
dataType:'json',
success:function(result){
console.log(result);
if(result.showapi_res_code == 0){
var data = result.showapi_res_body;
var content = '快遞公司:'+data.expTextName+'<br><br><hr>物流詳情:<br>';
for(var i=0;i<data.data.length;i++){
content += data.data[i].time+'<br>'+data.data[i].context+'<br><br>';
}
}else{
var content = result.showapi_res_error;
}
$('#wuliu').html(content);
}
});
}
</script>
</head>
<body>
<input type="text" id="nu" value=""/>
<button type="button" onclick="loadXMLDoc()">查詢單號</button>
<br>
<div id="wuliu" style="margin-top: 20px;">
</div>
</body>
</html>
前臺是用ajax訪問php文件,返回json數據(物流詳情)