中通开放平台 预约下单接口php
一开始以为腾讯的接口写的挺操蛋的,结果最近对接中通的开放平台接口,发现更操蛋的事情,可能是我太矫情了,上代码吧
以下是下单场景
$orderdata = ‘{
“partnerCode”: “‘.$ordersn.'”,
“type”: 1,
“sender”: {
“id”: “‘.$openid.'”,
“name”: “‘.$arr[‘name1’].'”,
“mobile”: “‘.$arr[‘tel1’].'”,
“prov”: “‘.$pcc1[0].'”,
“city”: “‘.$pcc1[1].'”,
“county”: “‘.$pcc1[2].'”,
“address”: “‘.$arr[‘des1’].'”
},
“receiver”: {
“name”: “‘.$arr[‘name2’].'”,
“mobile”: “‘.$arr[‘tel2’].'”,
“prov”: “‘.$pcc2[0].'”,
“city”: “‘.$pcc2[1].'”,
“county”: “‘.$pcc2[2].'”,
“address”: “‘.$arr[‘des2’].'”
},
“items”: [
{
“name”: “‘.$arr[‘objtype’].'”,
“weight”: “‘.$arr[‘weight’].'”
}
],
“weight”: ‘.$arr[‘weight’].’,
“remark”: “‘.$remark.'”
}’;
$data = array(‘orderGroup’ => $orderdata);
$result = $this->actionZtoOrder(“OpenOrderCreate”,$data);
//中通接口
public function actionZtoOrder($apiname,$data){
global $_GPC,$_W;
// $url = “http://58.40.16.125:9001/”.$apiname;//测试环境
$url = “http://japi.zto.cn/”.$apiname;//生产环境
$config = pdo_fetch(“SELECT * FROM ” . tablename(‘exphelp_config’).” limit 1″);
$company_id = $config[‘company_id’];
$key = $config[‘company_key’];
$str_to_digest = “”;
foreach ($data as $k=>$v) {
$str_to_digest .= $k.”=”.$v.”&”;
}
$str_to_digest = substr($str_to_digest, 0, -1).$key;
$data_digest = base64_encode(md5($str_to_digest,TRUE));
$options = array(
‘http’ => array(
‘header’ => “Content-type: application/x-www-form-urlencoded; charset=utf-8\r\n”.
“x-companyid: “.$company_id.”\r\n”.
“x-datadigest: “.$data_digest.”\r\n”,
‘method’ => ‘POST’,
‘content’ => http_build_query($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$result = json_decode($result,true);
return $result;
}
取消订单:
$ordercode = “180408000332490109”;
$data = ‘[{
“orderCode”: “‘.$ordercode.'”,
“fieldName”: “status”,
“fieldValue”: “cancel”,
“reason”: “客户取消订单”
}]’;
$result = $this->actionZtoOrder(“commonOrderUpdate”,$data,”UPDATE”);
查询订单:
$orderdata = ‘{
“sendId”: “130520142010”,
“starttime”: “‘.date(‘Y-m-d H:i:s’,strtotime(‘-1 month’)).'”,
“endtime”: “‘.date(“Y-m-d H:i:s”,time()).'”,
“status”: “0,1,2,3,4,-1,-2,-3,-4,-5,99”,
“pageIndex”: “1”,
“pageSize”: “10”
}’;
$data = array(
‘data’ => $orderdata,
“company_id” => $company_id,
“msg_type”=>”SEARCH”);
$result = $this->actionZtoOrder(“commonOrderSearch”,$data);
查询订单明细:
$data = ‘ {
“orderCode”: [
“180408000332490109”
],
“sendId”: “130520142010”
} ‘;
$result = $this->actionZtoOrder(“commonOrderSearchbycode”,$data,”SEARCHBYCODE”);