对接快递鸟
功能:通过快递查询物流信息和轨迹订阅
封装请求代码
<?php
namespace App\Packages\Kdniao\src;
class Base
{
private $appKey;
private $EBusinessID;
private $dataSign;
private $dataType;
private $sort;
const API_SEL_URL = 'https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx';
const API_TRACK_URL = 'https://api.kdniao.com/api/dist';
public function __construct()
{
$this->init();
}
public function init()
{
$this->appKey = config('kdniao.appKey');
$this->EBusinessID = config('kdniao.EBusinessID');;
$this->dataSign = '数据签名';
$this->dataType = '2';
$this->sort = 1;
}
public function requestData($requestData, $type)
{
$requestData = json_encode($requestData);
$sign = urlencode(base64_encode(md5($requestData . $this->appKey)));
$data = [
'EBusinessID' => $this->EBusinessID,
'RequestType' => $type,
'DataSign' => $this->dataSign,
'DataType' => $this->dataType,
'RequestData' => urlencode($requestData),
'DataSign' => $sign
];
return $data;
}
public function sel($data)
{
$requestData = [
'ShipperCode' => $data['express_company_code'],
'LogisticCode' => $data['express_num'],
'Sort' => $this->sort,
];
if (isset($data['phone'])) {
$requestData['CustomerName'] = substr($data['phone'], -4);
}
$data = self::requestData($requestData, '8001');
load_helper('Network');
$res = http_post(self::API_SEL_URL, $data);
return $res;
}
public function track($data)
{
$requestData = [
'ShipperCode' => $data['express_company_code'],
'LogisticCode' => $data['express_num'],
'Sort' => $this->sort,
];
if (isset($data['phone'])) {
$requestData['CustomerName'] = substr($data['phone'], -4);
}
if (isset($data['callBackUrl'])) {
$requestData['CallbackUrl'] = $data['callBackUrl'];
}
$data = self::requestData($requestData, '8008');
load_helper('Network');
$res = http_post(self::API_TRACK_URL, $data);
return $res;
}
}
config配置文件
<?php
return [
'appKey' => env('KDNIAO_APP_KEY', ''),
'EBusinessID' => env('KDNIAO_EBUSINESS_ID', ''),
];
发起请求
$kdNiao = new \App\Packages\Kdniao\src\Base();
$data = [
'express_company_code' => 'SF',
'express_num' => 'xxxxxx',
'phone' => 'xxxxxx'
];
$res = $kdNiao->sel($data);
$data = [
'express_company_code' => 'SF',
'express_num' => 'xxxxxx',
'phone' => 'xxxxx',
'callBackUrl' => 'http://xxxx.com'
];
$res = $kdNiao->track($data);
请求结果如下