前面玩了一下Python,用快递100的接口实现了实时查询。这种方式在C端比较常见,拿个单号直接百度一下,看看最新的进展在哪。如果是商家呢,则多数希望通过走后台订阅-推送的方式,高效快捷,不用怎么理会,系统自动搞定,快递信息自动同步给下单客户。
考虑到电商商家多数使用宇宙最好用的PHP来实现,本帅也小试一把,大家凑合着看看哈~
记得使用前先去快递100官网申请企业版接口(API)账号
//注册地址:https://api.kuaidi100.com/register/enterprise
//按要求写清楚,会很快收到审批通过邮件,里面有账号密码等信息
// 授权信息可通过链接查看:https://api.kuaidi100.com/manager/page/myinfo/enterprise
下面是几个关键步骤:
第一步,设置好参数
//====================================
// 订阅请求示例代码
// 授权信息可通过链接查看:https://api.kuaidi100.com/manager/page/myinfo/enterprise
//====================================
//参数设置
$key = ''; //客户授权key
$param = array (
'company' => 'yunda', //快递公司编码
'number' => '3950055201640', //快递单号
'from' => '', //出发地城市
'to' => '', //目的地城市
'key' => $key, //客户授权key
'parameters' => array (
'callbackurl' => '', //回调地址
'salt' => '', //加密串
'resultv2' => '1', //行政区域解析
'autoCom' => '0', //单号智能识别
'interCom' => '0', //开启国际版
'departureCountry' => '', //出发国
'departureCom' => '', //出发国快递公司编码
'destinationCountry' => '', //目的国
'destinationCom' => '', //目的国快递公司编码
'phone' => '' //手机号
)
);
?>
第二步,生成订阅请求参数
//请求参数
$post_data = array();
$post_data["schema"] = 'json';
$post_data["param"] = json_encode($param);
$url = 'http://poll.kuaidi100.com/poll'; //订阅请求地址
$params = "";
foreach ($post_data as $k=>$v) {
$params .= "$k=".urlencode($v)."&"; //默认UTF-8编码格式
}
$post_data = substr($params, 0, -1);
echo '请求参数
'.$post_data;
?>
第三步,提交订阅
//发送post请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
$data = str_replace("\"", '"', $result );
$data = json_decode($data);
echo '
返回数据
';
echo var_dump($data);
?>
简单的订阅就搞定了。当然,还有个回调需要自己再倒腾一下,这个是自己内部的事情了,就不多逼逼了。
快递100后台有调试工具,整个调试过程还是很方便的,推荐大家直接使用。用之前邮箱收到的审批信息登录后台可以看到。