aliwuliu add
This commit is contained in:
@@ -521,6 +521,24 @@ class Transfer extends HD_Controller
|
||||
return $this->show_json(SYS_CODE_SUCCESS, '短信提醒成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 货物物流信息测试
|
||||
* @return array
|
||||
*/
|
||||
public function get_aliwuliu(){
|
||||
$no = $this->input->get('no');
|
||||
/*if (!$no) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '快递单号不能为空【顺丰和丰网请输入单号 : 收件人或寄件人手机号后四位。例如:123456789:1234】');
|
||||
}*/
|
||||
$type = $this->input->get('type');
|
||||
|
||||
$this->load->library('AliWuliu');
|
||||
$res = $this->aliwuliu->kdi($no, $type, $debug=false);
|
||||
print(json_encode($res));
|
||||
#var_dump($res);var_dump($res['status']);var_dump($res['msg']);
|
||||
#var_dump($res['result']['number']);var_dump($res['result']['type']);var_dump($res['result']['deliverystatus']);var_dump($res['result']['issign']);var_dump($res['result']['expName']);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增/修改调拨
|
||||
* @return bool
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
/**
|
||||
* Desc: 阿里云 全国快递物流查询
|
||||
* Date: 2023-02-20
|
||||
*/
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
error_reporting(E_ALL || ~E_NOTICE);
|
||||
|
||||
class AliWuliu{
|
||||
|
||||
private $appkey;
|
||||
private $appcode;
|
||||
private $appecret;
|
||||
private $ci;
|
||||
private $dir;
|
||||
private $success_file = 'success.log';
|
||||
private $log_file = 'error.log';
|
||||
public function __construct($appcode=''){
|
||||
$this->appcode = $appcode ? $appcode : 'e9f05c2fdf65458a80e8619141481cee';
|
||||
$this->ci = & get_instance();
|
||||
$this->dir = 'aliwuliu';
|
||||
}
|
||||
|
||||
/**
|
||||
* Desc: https://market.aliyun.com/products/57126001/cmapi021863.html?spm=5176.2020520132.101.4.2de27218yEmTb1#sku=yuncode1586300000
|
||||
* Desc: https://netmarket.oss.aliyuncs.com/e885884a-8666-4d9d-85a9-692250a5510a.pdf?spm=5176.2020520132.101.6.2de27218yEmTb1&file=e885884a-8666-4d9d-85a9-692250a5510a.pdf
|
||||
* @param $no string 快递单号 【顺丰和丰网请输入单号 : 收件人或寄件人手机号后四位。例如:123456789:1234
|
||||
* @param $type string 快递公司字母简写:不知道可不填 95%能自动识别,填写查询速度会更快
|
||||
* @param $debug bool
|
||||
* @return array 返回值参考官方文档
|
||||
*/
|
||||
public function kdi($no, $type='', $debug=false){
|
||||
if (!$no){
|
||||
return array('status'=>201, 'msg'=>'快递单号错误','result'=>array('number'=>'','type'=>'AUTO'),'code'=>0);
|
||||
}
|
||||
|
||||
$host = "https://wuliu.market.alicloudapi.com";//api访问链接
|
||||
$path = "/kdi";//API访问后缀
|
||||
$method = "GET";
|
||||
$appcode = $this->appcode;//开通服务后 买家中心-查看AppCode
|
||||
$headers = array();
|
||||
array_push($headers, "Authorization:APPCODE " . $appcode);
|
||||
#$querys = "no=780098068058&type=zto"; //参数写在这里
|
||||
$bodys = "";
|
||||
$querys = $type ? "no={$no}&type={$type}" : "no={$no}";
|
||||
$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, true);
|
||||
if (1 == strpos("$" . $host, "https://")) {
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
|
||||
}
|
||||
$out_put = curl_exec($curl);
|
||||
|
||||
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||||
|
||||
|
||||
list($header, $body) = explode("\r\n\r\n", $out_put, 2);
|
||||
if ($httpCode == 200) {
|
||||
$debug && print("正常请求计费(其他均不计费)<br>");
|
||||
$debug && print($body);
|
||||
$data = array(
|
||||
'no' =>$no,
|
||||
'type' =>$type,
|
||||
'httpCode' => $httpCode,
|
||||
'msg' => $body,
|
||||
);
|
||||
debug_log(json_encode($data,JSON_UNESCAPED_UNICODE),$this->success_file,$this->dir);
|
||||
$res = json_decode($body, true);
|
||||
$res['code'] = 1;
|
||||
return $res;
|
||||
} else {
|
||||
if ($httpCode == 400 && strpos($header, "Invalid Param Location") !== false) {
|
||||
$msg = '参数错误';
|
||||
$debug && print("参数错误");
|
||||
} elseif ($httpCode == 400 && strpos($header, "Invalid AppCode") !== false) {
|
||||
$msg = 'AppCode错误';
|
||||
$debug && print("AppCode错误");
|
||||
} elseif ($httpCode == 400 && strpos($header, "Invalid Url") !== false) {
|
||||
$msg = '请求的 Method、Path 或者环境错误';
|
||||
$debug && print("请求的 Method、Path 或者环境错误");
|
||||
} elseif ($httpCode == 403 && strpos($header, "Unauthorized") !== false) {
|
||||
$msg = '服务未被授权(或URL和Path不正确)';
|
||||
$debug && print("服务未被授权(或URL和Path不正确)");
|
||||
} elseif ($httpCode == 403 && strpos($header, "Quota Exhausted") !== false) {
|
||||
$msg = '套餐包次数用完';
|
||||
$debug && print("套餐包次数用完");
|
||||
} elseif ($httpCode == 403 && strpos($header, "Api Market Subscription quota exhausted") !== false) {
|
||||
$msg = '套餐包次数用完,请续购套餐';
|
||||
$debug && print("套餐包次数用完,请续购套餐");
|
||||
} elseif ($httpCode == 500) {
|
||||
$msg = 'API网关错误';
|
||||
$debug && print("API网关错误");
|
||||
} elseif ($httpCode == 0) {
|
||||
$msg = 'URL错误';
|
||||
$debug && print("URL错误");
|
||||
} else {
|
||||
$msg = '参数名错误 或 其他错误';
|
||||
$debug && print("参数名错误 或 其他错误");
|
||||
$debug && print($httpCode);
|
||||
$headers = explode("\r\n", $header);
|
||||
$headList = array();
|
||||
foreach ($headers as $head) {
|
||||
$value = explode(':', $head);
|
||||
$headList[$value[0]] = $value[1];
|
||||
}
|
||||
$debug && print($headList['x-ca-error-message']);
|
||||
}
|
||||
$data = array(
|
||||
'no' =>$no,
|
||||
'type' =>$type,
|
||||
'httpCode' => $httpCode,
|
||||
'msg' => $msg,
|
||||
);
|
||||
debug_log(json_encode($data,JSON_UNESCAPED_UNICODE),$this->log_file,$this->dir);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user