电子面单云打印接口
电子面单云打印接口。
1.请求参数:
参数名 | 类型 | 说明 | 示例 |
---|---|---|---|
appid | String | 合作伙伴AppId | uwkahf@jfs92 |
timestamp | String | 当前时间戳 | |
seller_nick | String | 拼多多商家账号,非店铺名称 | kingdo |
sign | String | 接口签名 | 如何计算生成见示例代码 |
request_data | String | 必填 请求的获取电子面单的json数据 | |
sysid | String | 必填 , 应用ID |
如果一次取多个单号, 最多一次可以取50个单号。
request_data的json示例格式,注意类型格式,比如数字型和字符串型的区别
{
"senderName": "张三", //发件人姓名,必需
"senderMobile": "18817834074", // 发件人手机号码,必需
"senderProvince": "上海市", //网点发货省,必需
"senderCity": "上海市", // 网点发货市,必需
"senderTown": "浦东新区", //网点发货区,必需
"senderDetail": "东方路200号", //网点发货详细地址,必需
"wpCode": "SF", //快递编号,类似 SF,STO,必需
"waybillType": 1, // 面单类型 1:一联单,2:二联单,3:其他,必需,必需
"shopCode": "k3mghLc7qs", //店铺代码,咨询客服,必需
"orderChannel": 1, // 1 自由订单,必需
"orderList": [ //取号订单列表,最多 50 个 详情请看下方注释
{
"province": "广东省", //收货人省,必需
"city": "汕头市", //收货人市,必需
"town": "澄海区", //收货人区,必需
"receiverAddress": "隆都大道200号", // 收货人详细地址,必需
"receiverPhone": "19189670214", // 收货人手机,必需
"receiverName": "柳言", // 收货人姓名,必需
"orderSn": "38138481471284385", // 订单号,自由订单,可自定义生成,必需
"nameEncrypt": "", //加密收货人姓名, 如果传了优先使用,可选
"phoneEncrypt": "", // 加密收货人手机号, 如果传了优先使用,可选
"addressEncrypt": "", // 加密收货人详细地址 , 如果传了优先使用,可选
"LogisticsServices": "" //产品类型 , "{“TIMED-DELIVERY”: {“value”: “X”}" X对应枚举类,可选
}
]
}
2. 请求示例代码(Java)
@Test
public void PddWayBillV1Get() throws Exception {
String seller_nick = Config.PddSellerNick ; // 拼多多卖家账号
//业务参数
Map<String, String> data = new HashMap<String, String>();
data.put("appid", Config.AppId);
data.put("seller_nick", seller_nick);
Long timestamp = System.currentTimeMillis() / 1000;
data.put("timestamp", timestamp.toString());
data.put("sysid","301");
// 明文订单
String requestData ="{\n" + " \"senderName\": \"张三\",\n" + " \"senderMobile\": \"18817834074\",\n" + " \"senderProvince\": \"上海市\",\n" + " \"senderCity\": \"上海市\",\n" + " \"senderTown\": \"浦东新区\",\n" + " \"senderDetail\": \"东方路200号\",\n" + " \"wpCode\": \"SF\",\n" + " \"waybillType\": 1,\n" + " \"shopCode\": \"k3mghLc7qs\",\n" + " \"orderChannel\": 1,\n" + " \"orderList\": [\n" + " {\n" + " \"province\": \"广东省\",\n" + " \"city\": \"汕头市\",\n" + " \"town\": \"澄海区\",\n" + " \"receiverAddress\": \"隆都大道200号\",\n" + " \"receiverPhone\": \"19189670214\",\n" + " \"receiverName\": \"柳言\",\n" + " \"orderSn\": \"38138481471284385\",\n" + " \"nameEncrypt\": \"\",\n" + " \"phoneEncrypt\": \"\",\n" + " \"addressEncrypt\": \"\",\n" + " \"LogisticsServices\": \"\"\n" + " }\n" + " ]\n" + "}";
data.put("request_data", requestData);
// 参数签名
data.put("sign", Utils.Sign(data,Config.AppSecret));
doHttpRequest(Config.PddWayBillV1GetUrl,data);
}
- 需要注意的是package_info中的id为包裹id ,请不要相同,否则会取到相同的面单号。
- trade_order_info_dtos是集合,用于存放多个要取号的订单。 user_id可以为0,蜂巢会自动替换为当前商家的user_id。此接口相对拼多多的标准接口少了收件人recipient字段。
- trade_order_list虽然是集合, 只需要存入一个订单号,切莫存入多个订单号放到trade_order_list集合。
- 接口取号时发货地址设置为账户网点对应发货地址。
- 其他更多信息可参考拼多多官方说明, 拼多多电子面单接入指南。
- 取得电子面单后,可用拼多多打印组件,将面单信息通过打印机打印到纸质上,如何使用拼多多打印组件
3. 返回结果如下:
限于篇幅,以下json为部分数据,
3.1 取号成功情况
{
"code": 0,
"message": "ok",
"data": [
{
"code": 1,
"errorMsg": "",
"orderSn": "38138481471184316",
"waybillCode": "SF3190110811512",
"parentWaybillCode": "",
"printData": {
"encryptedData": "nCGXTLX57Gy747SrsozPkywPsvisXsWOuPmIFzHN0LR83cQkYW0zzwK5w==?v=11&pv=1",
"signature": "qPhuHbsTdmAvjSuxRMRz0=",
"templateUrl": "https://file-link.pinduoduo.com/sf_one",
"ver": "11"
}
}
],
"trace_id": ""
}
3.2 取号失败的情况
{
"code": 10000,
"message": "",
"result": [
{
"code": 11126,
"errorMsg": "错误:业务服务错误或者发生:订单已取消,不可更改或再次取消错误",
"orderSn": "38138481471184314",
"waybillCode": "",
"parentWaybillCode": "",
"printData": {
"encryptedData": "",
"signature": "",
"templateUrl": "",
"ver": ""
}
}
]
}
返回字段说明
object_id : 请求id,此id为开发者请求时的id,用于返回时标识哪个对象。
parent_waybill_code : 快运母单号
print_data : 面单信息
waybill_code STRING : 面单号
说明: code为0表示成功,非0为失败,message会包含失败原因。失败时一定要注意,可能商户授权过期,或是参数有误。内层的code和message用于表示具体某个订单取号是否成功。code为0表示取号成功。
常见问题
1.电子面单支持给别的店铺获取面单吗?
回答 :支持,举例:A店铺开通电子面单账号,想要用A店铺的面单打印B店铺的订单,在取号调用pdd.waybill.get接口时入参A店铺的账号然后user_id入参B店铺的pdduserid即可
2. 接口返回”发货地址非法”的错误
发货地址必须和店铺后台申请电子面单时的地址完全一致,省市区分别入参相应字段,其余入参detail字段;具体地址可在店铺后台查看或通过查询面单服务订购及面单使用情况接口获取
3. 批量取号时如果失败了,会返回成功的部分吗?
比如一次取100个面单号,会返回100个结果,包括成功和失败的。 可以根据data集合中的code来判断,code为0时,表示对应的快递单取号成功了,如果失败了code为1,message会有失败的原因。 对于失败的订单号,可以根据自定义传入的object_id(可以用订单号等做相应的标识)定位是哪个订单取号失败。
4. 使用pdd.waybill.get获得面单信息后怎么对接到云打印组件?
请参阅开放平台文档“电子面单”部分“云打印交互协议”https://open.pinduoduo.com/application/document/browse?idStr=3BBB4C229B6A8FCC
5. 顺丰取号时,提示“有必选的增值服务没有选择”
顺丰取号时,需要在logistics_services里增加如下相关参数。
"logistics_services":{
"TIMED-DELIVERY": {
"value": "2"},//时效产品
”INSURE": {
"value": "510.1"}//保价
}
注意代码中传值格式为:"logistics_services": "{\"TIMED-DELIVERY\": {\"value\": \"247\"}}"
注意事项:
时效产品不传值则默认为“顺丰特快”;
【保价】服务需要传具体的报价金额,单位为“元”,精确到小数点后1位;
支持的时效产品可在pdd.waybill.search接口获取到;
6. 支持丰网吗
支持的,wp_code传入FENGWANG