该接口能够:
- 根据邮编和地址字段不同的音译方式识别并返回对应的CDEK城市,目前仅限俄罗斯国家的地址
- 识别CDEK城市的话可以提交代收货款金额为了检查目的地是否能够向收件人收取具体代收货款金额,因为有些目的地CDEK有一定的代收货款金额限制
- 根据邮编和地址可以获取对应的FIAS地区信息 (FIAS 是俄罗斯联邦标准地址信息系统)
比如根据以下不同的音译的城市名:
Blagoveshchenck 或
Blagoweschensc 或
Blagoveshensk 或
blagoweshensc
能够识别具体CDEK城市
请求参数
请求方式: HTTP POST
请求地址:https://int.cdek-express.cn/api/v2/detect-city
请求以及返回内容格式:json utf-8
请求验证:headers[“CDEK-Developer-Key”]
请求headers必须包“CDEK-Developer-Key”参数内容是CDEK提供给开发者识别码
请求内容
参数名称 |
类型 |
描述 |
address |
string
|
地址字段 (必填的)
|
postcode |
string |
邮政编码 (必填的)
|
cod_rub |
float |
代收货款金额(卢布,默认 0.0) |
fias_only |
boolean |
是否仅需要返回FIAS地址识别码(默认false) |
country_code |
string(2) |
国家编码 ISO_3166-1_alpha-2 格式的 (默认”ru”) |
首先接口根据地址和邮编识别对应的FIAS数据库的城市,然后根据FIAS城市获取CDEK城市信息。
提交 fias_only = True 的话接口不会获取CDEK城市信息而直接返回FIAS城市信息。
API2.0下单接口支持提交地区的FIAS地区代码这样没有必要获取CDEK城市信息。
返回内容
字段名称 |
类型 |
描述 |
status_code |
string |
识别结果代码 |
status_msg |
string |
识别结果描述 |
detected_cdek_city |
object |
CDEK城市object |
detected_fias_city |
object |
FIAS地区object |
possible_cities |
list |
邮编对应的城市名称列表 |
CDEK城市Object
字段名称 |
类型 |
描述 |
cityCode |
string(int) |
CDEK城市代码 |
cityName |
string |
城市名称 |
cityUuid |
string |
城市UUID |
country |
string |
国家名称 |
countryCode |
string(2) |
国家代码 |
fiasGuid |
string |
FIAS 地区 GUID
|
kladr |
string |
KALDR 地址代码 |
latitude |
float |
维度 |
longitude |
float |
经度 |
paymentLimit |
int |
地区CDEK代收货款限额 (-1没有限额,0不能代收) |
region |
string |
省会名称 |
regionCode |
string(int) |
根据CDEK数据库省会代码 |
regionCodeExt |
string(int) |
俄罗斯省会标准代码 |
regionFiasGuid |
string |
FIAS 省会 GUID
|
subRegion |
string |
下级地区名称 |
timezone |
string |
时区名称 |
FIAS地区Object
字段名称 |
类型 |
描述 |
formal_name |
string |
地区名称 |
official_name |
string |
地区正式名称 |
prefix |
string |
前缀 (市、镇、村等等) |
guid |
string |
FIAS GUID |
ao_level |
string(int) |
地区级别 4,6 - 城市、镇、村
|
识别结果代码列表
结果代码
|
结果描述 |
备注 |
OK |
城市识别成功 |
|
COD_LIMIT_EXCEEDED |
代收货款金额超过限额 |
|
ERR_CDEK_HAS_NO_FIAS_GUID |
根据GUID无法获取CDEK城市 |
|
ERR_MANY_CITIES_IN_ADDRESS |
根据邮编识别了多个城市 |
|
ERR_NOT_DETECT_CITY_IN_ADDRESS |
地址字段没有邮编对应的城市名 |
|
ERR_NO_POSTCODE |
没提交邮编 |
|
ERR_NO_DEVKEY |
没提交开发者识别码 |
|
ERR_BAD_DEVKEY |
开发者识别码未注册 |
|
ERR_BAD_COUNTRY |
不支持的国家 |
目前仅支持俄罗斯 - ru |
ERR_NO_ADDRESS |
没提交地址字段 |
|
ERR_INTERNAL |
接口内部错误 |
联系CDEK技术支持 |
请求和返回例子
成功识别城市例子
import requests
from pprint import pprint
params = {'postcode': '675000', 'address': 'Lenina 21, 2 Blagoveschensk'}
url = f'https://int.cdek-express.cn/api/v2/detect-city'
headers = {'CDEK-Developer-Key': '*************'}
res_data = requests.post(url, json=params, headers=headers).json()
pprint(res_data)
{
'address': 'Lenina 21, 2 Blagoveschensk',
'detected_cdek_city': {
'cityCode': '286',
'cityName': 'Благовещенск',
'cityUuid': '0f39b5cc-f2af-41a4-baf2-ac9615f4c2a7',
'country': 'Россия',
'countryCode': 'RU',
'fiasGuid': '8f41253d-6e3b-48a9-842a-25ba894bd093',
'kladr': '2800000100000',
'latitude': 50.2907,
'longitude': 127.527,
'paymentLimit': -1,
'region': 'Амурская',
'regionCode': '56',
'regionCodeExt': '28',
'regionFiasGuid': '844a80d6-5e31-4017-b422-4d9c01e9942c',
'subRegion': 'Благовещенск',
'timezone': 'Asia/Yakutsk'
},
'detected_fias_city': {
'ao_level': '4',
'formal_name': 'Благовещенск',
'guid': '8f41253d-6e3b-48a9-842a-25ba894bd093',
'official_name': 'Благовещенск',
'prefix': 'г'
},
'possible_cities': ['Благовещенск'],
'postcode': '675000',
'status_code': 'OK',
'status_msg': 'CDEK城市识别成功'
}
识别失败例子
import requests
from pprint import pprint
params = {'postcode': '675000', 'address': 'Lenina 21, 2 Badcityname', 'cod_rub': 100}
url = f'https://int.cdek-express.cn/api/v2/detect-city'
headers = {'CDEK-Developer-Key': '******************'}
res_data = requests.post(url, json=params, headers=headers).json()
pprint(res_data)
{
'address': 'Lenina 21, 2 Badcityname',
'possible_cities': ['Благовещенск'],
'postcode': '675000',
'status_code': 'ERR_NOT_DETECT_CITY_IN_ADDRESS',
'status_msg': '地址字段没有邮编对应的城市名'
}