快递地址写错了怎么办?快宝地址清洗(PHP示例)

快递地址写错了怎么办?快递地址写的不详细怎么办?快宝地址清洗,有效的解决了寄送快递时,收件人/发件人信息录入,地址数据纠正和补全,并输出结构化地址数据的一个有效方案。

一、地址清洗适用场景

1. 不完整地址识别
比如地址“山东省烟台市烟台市峰哥”,由省市街道组成,调用快宝地址清洗API,将会给你返回如下地址数据:

省:山东省
市:烟台市
区/县:
地址:烟台市峰哥
2. 地址补全
比如地址“新疆-和田-和田”,由不完整的省市区组成,将会被识别成为如下地址结构:
省:新疆维吾尔自治区
市:和田地区
区/县:和田市
地址:
3. 识别已合并的区/县
比如地址“北京市宣武区茶儿胡同”,其中有被合并为西城区的宣武区,将会被识别为如下的地址结构:
省:北京市
市:北京市
区/县:西城区
地址:茶儿胡同

二、接口说明

1. 注册快宝开放平台,获取开发者账号(http://open.kuaidihelp.com/register)。

2. 对接地址清洗接口(http://open.kuaidihelp.com/api/1019)。

3. 在您的软件中应用地址清洗。

接口名称:cloud.address.cleanse

正式地址:https://kop.kuaidihelp.com/api

请求方式:HTTP POST

请求方法编码格式:utf-8

公共请求参数 ↓ 

名称 类型 是否必须 描述
method string API接口名称
app_id string 用户ID(注册开放平台时分配,在控制台中查看)
sign string 按照规则(md5(app_id + method + ts + api_key))生成的验证合法性签名
ts string 当前请求的时间戳
data string JSON格式请求参数设置

公共响应参数 ↓ 

名称 类型 是否必须 描述
code int 响应状态码。0-成功,非0-失败下载并查看详情
msg string 返回结果说明
uid string 本次请求唯一业务流水号
data string JSON格式响应数据

请求参数 ↓ 

名称 类型 是否必须 描述
address string 地址信息(英文;作为批量分隔符)
multimode string 是否批量(true 为批量,false非批量;默认为true)

响应参数  ↓ 

名称 类型 是否必须 描述
province string 省级名称
province_id string 省级行政编码
city string 市级名称
city_id string 市级行政编码
district string 县级名称
district_id string 县级行政编码
address string 详细地址
res string 是否返回完整结果
county_id string 县级行政编码
支持Java,C#,Python,PHP,Node.js,Curl等6中语言接入,下面以PHP为例,展示 地址清洗代码示例
$host = "https://kop.kuaidihelp.com/api";
$method = "POST";
$headers = array();
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8");
$querys = "";
$bodys = [
"app_id"=>'50001',
"method"=>'cloud.address.cleanse',
"sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79",
"ts"=>'1524209949',
"data"=>'{
    "multimode":true,
    "address":"山东省烟台市烟台市峰哥;上海-上海-长宁;山东-东营-东营区;湖北-恩施土家族苗族自治州-恩施;新疆-和田-和田"
}'
];
$bodys = http_build_query($bodys);
$url = $host;
$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);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
var_dump(curl_exec($curl));

成功响应示例(JSON) ↓  

{
"code":int0
"msg":string"success"
"uid":string"a6934adee62d8ba3430d4ac678dd5f46c7a79d6e"
"data":[
0:{
"province":string"山东省"
"province_code":string"370000"
"city":string"烟台市"
"city_code":string"370600"
"district":string""
"district_code":string""
"address":string"烟台市峰哥"
"res":int0
}
1:{
"province":string"上海市"
"province_code":string"310000"
"city":string"上海市"
"city_code":string"310000"
"district":string"长宁区"
"district_code":string"310105"
"address":string""
"res":int0
}
2:{
"province":string"山东省"
"province_code":string"370000"
"city":string"东营市"
"city_code":string"370500"
"district":string"东营区"
"district_code":string"370502"
"address":string"东营区"
"res":int0
}
3:{
"province":string"湖北省"
"province_code":string"420000"
"city":string"恩施土家族苗族自治州"
"city_code":string"422800"
"district":string"恩施市"
"district_code":string"422801"
"address":string""
"res":int0
}
4:{
"province":string"新疆维吾尔自治区"
"province_code":string"650000"
"city":string"和田地区"
"city_code":string"653200"
"district":string"和田市"
"district_code":string"653201"
"address":string""
"res":int0
}
]
}

异常响应示例(JSON) ↓   

{
"code":int400001
"msg":string"业务参数有误,请检查"
"uid":string"a6934adee62d8ba3430d4ac678dd5f46c7a79d6e"
"data":{}
}

错误码说明  ↓  

错误码 描述
400001 业务参数有误
400002 超出批量解析最大数量限制
400003 输入字符太少
400004 请求方式错误
400005 请求数据格式错误
400006 缺少必要的参数
400007 类型不合法
400008 不支持的快递品牌
-the end-

猜你喜欢

转载自blog.csdn.net/a304dedige/article/details/80083143