是否派送可达判定批量查询接口
提供给商家在发货之前做截单处理,输入物流商编码和收发货地址进行可达判定,目前支持国内主流的物流服务商, 支持快运和快递两种类型 。此接口支持淘宝,拼多多查询。由于不同的电商平台的快递公司代码不同,使用此接口时,要传入电商平台的代码及快递公司代码。
一、请求参数
请求URL:
POST https://kf.fw199.com/gateway/taobao/cainiao/reachable/v2/batchjudge
| 参数名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| appid | String | 合作伙伴AppId | uwkahf@jfs92 |
| timestamp | String | 当前时间戳 | |
| tb_seller_nick | String | 淘宝卖家店铺登录账号,非店铺名称 | kingdo |
| sign | String | 接口签名 | 如何计算生成见示例代码 |
| address_type | int | 必填, 1:快递 2:快运 | |
| channel | int | 平台代码, 1:淘宝 2:拼多多 | |
| data | json | 业务报文,查询发货地址和目标地址的json数据,一次查询最多10个地址。 |
上述入参data的具体JSON格式如下:
| 名称 | 类型 | 必须 | 示例值 | 描述 |
|---|---|---|---|---|
| cp_code | String | true | STO | 快递公司code |
| address_and_service_list | ReachableAddressAndServiceDto[] | true | 收发地址和服务列表 | |
| – receive_address | ReceiveAddress | true | 收货地址 | |
| —— town_name | String | false | 蒋村街道 | 镇/街道 |
| —— address_detail | String | true | xxxxx | 详细地址 |
| —— city_name | String | false | 杭州市 | 市 |
| —— area_name | String | false | 西湖区 | 区 |
| —— province_name | String | true | 浙江省 | 省 |
| – service_code_list | String[] | false | { “SVC-COD”: { “value”: 100.5 } } | 服务列表,每一项必须为json的string格式,快运必填,快递为空则默认为’标准快递’ |
| – object_id | String | true | abc | 每条收发地址的key,用户自定义,每次请求多个地址不能重复 |
| – send_address | AddressDto | false | 发货地址 | |
| —— town_name | String | false | 蒋村街道 | 镇/街道 |
| —— address_detail | String | false | yyyyy | 详细地址 |
| —— city_name | String | false | 杭州市 | 市 |
| —— area_name | String | false | 西湖区 | 区 |
| —— province_name | String | false | 浙江省 | 省 |
| – oaid | String | false | abc | 淘宝开放地址ID |
| – order_id | Number | false | 123456 | 订单id |
| – caid | String | false | def | C2M&1688开放地址ID |
| send_branch_code | String | false | 20111 | 发件揽收网点 |
一(一)、淘宝密文可达地址查询
由于消费者隐私政策,消费者的收件人地址中的详细地址会被脱敏打星,因此需要传入oaid和订单号进行精确的判断。入参data的具体JSON格式如下:
{ "address_and_service_list" : [ { "object_id" : "abc100", "receive_address" : { "address_detail" : "丰*街道鞋都二期望**园", "area_name" : "鹿城区", "city_name" : "温州市", "province_name" : "浙江省", "town_name" : "丰门街道" }, "send_address" : { "area_name" : "南沙区", "city_name" : "广州市", "province_name" : "广东省", "town_name" : "", "address_detail" : "塘坑村工业一路6号B区668仓库" }, "order_id" : 4055784950921181018, "oaid" : "1INcXhYriaMA99jYdXib855sMe0J1RVdqvrCaeicv6swMeMYG6YvqceowSqYK5R87drdPia09Of" } ], "cp_code" : "STO"}一(二)、淘宝明文可达地址查询
如果已经明确知道消费者的收件地址是明文地址,可以使用明文模式进行查询,入参data的具体JSON格式如下:
{ "address_and_service_list" : [ { "object_id" : "abc100", "receive_address" : { "address_detail" : "江苏省盐城市亭湖区公园道一号20幢1003", "area_name" : "亭湖区", "city_name" : "盐城市", "province_name" : "江苏省", "town_name" : "" }, "send_address" : { "area_name" : "南沙区", "city_name" : "广州市", "province_name" : "广东省", "town_name" : "", "address_detail" : "塘坑村工业一路6号B区668仓库" } } ], "cp_code" : "STO"}二、请求示例代码
Java
@Testpublic void taobaoCaiNiaoReachableBatchjudgeV2() throws Exception {
String tb_seller_nick = Config.TBSellerNick ; //业务参数 Map<String, String> data = new HashMap<String, String>(); data.put("appid", Config.AppId); Long timestamp = System.currentTimeMillis() / 1000; data.put("timestamp", timestamp.toString()); data.put("tb_seller_nick", tb_seller_nick); String checkData = "{" + " \"address_and_service_list\": [{" + " \"object_id\": \"abc100\"," + " \"receive_address\": {" + " \"address_detail\": \"球场路模范二村C栋七单元158\"," + " \"area_name\": \"江岸区\"," + " \"city_name\": \"武汉市\"," + " \"province_name\": \"湖北省\"," + " \"town_name\": \"\"" + " }," + " \"send_address\": {" + " \"area_name\": \"青浦区\"," + " \"city_name\": \"上海市\"," + " \"province_name\": \"上海市\"," + " \"town_name\": \"\"" + " }" + " }" + " ]," + " \"cp_code\": \"YTO,YZXB\"" +
"}";
// 1:快递 2:快运 data.put("address_type", "1"); data.put("channel", "2"); data.put("data", checkData); // 签名 data.put("sign", Utils.Sign(data,Config.AppSecret)); // 调用服务API doHttpRequest(Config.TaobaoCaiNiaoReachableBatchjudgeV2Url ,data);
}说明:cp_code为快递公司代码,可以传入多个快递公司,用英文逗号隔开。典型的场景,对收发地址,根据传入多家快递公司来判断哪几家可以到达。
三、返回结果
{ "code": 0, "message": "ok", "data": [ { "success": true, "cp_code": "POSTB", "module": { "result_list": [ { "success": true, "module": { "interrupt_apply_waybill_code": false //是否阻断 true:阻断 false:可达 }, "object_id": "abc100" } ] } }, { "success": true, "cp_code": "YTO", "module": { "result_list": [ { "success": true, "module": { "interrupt_reason": "物流服务不支持派送,内部整顿",//阻断原因 "interrupt_apply_waybill_code": true // 是否阻断 true:阻断 false:可达 }, "object_id": "abc100" } ] } } ], "trace_id": ""}三、1. 失败的结果
{ "code": 0, "message": "ok", "data": [ { "one_error_info": { "error_message": "没有找到相应的商户", "error_code": "20" }, "success": false, "cp_code": "YTO" } ], "trace_id": "b77c26c7-429c-44da-b5c2-fef5c1ac73a4"}说明: code为0表示成功,这是系统层面的成功或失败,非0为失败,对于业务层面,根据interrupt_apply_waybill_code是否真正可达来判断,true:阻断 false:可达。
四、快递公司代码
| 快递公司代码cp_code | 快递公司 |
|---|---|
| STO | 申通快递 |
| SF | 顺丰快递 |
| YTO | 圆通快递 |
| ZTO | 中通快递 |
| QFKD | 全峰快递 |
| TTKDEX | 天天快递 |
| YUNDA | 韵达快递 |
| FAST | 快捷快递 |
| GTO | 国通快递 |
| DBKD | 德邦快递 |
| POSTB | 邮政快递包裹 |
| FEDEX | 联邦快递 |
| YCT | 黑猫宅急便 |
| CN7000001003751 | 跨越速运 |
| EYB | EMS经济快递 |
| UAPEX | 全一快递 |
| HOAU | 天地华宇 |
| XB | 新邦物流 |
| BESTQJT | 百世快运 |
| DBL | 德邦物流 |
| LTS | 联昊通 |
| XFWL | 信丰物流 |
| 5000000007756 | 邮政标准快递 |
| QRT | 增益速递 |
| 3108002701_1011 | 中通快运 |
| CN7000001000869 | 安能快运 |
| 2744832184_543 | 壹米滴答 |
| CP471906 | 顺心捷达 |
| HTKY | 极兔快递 |