zoukankan      html  css  js  c++  java
  • 上门取件API-下单接口

            上一篇文章我们介绍了上门取件服务的重要性,这次我们来聊聊如何对接取件接口。

    前期工作就不多说了,快递鸟官网注册,获取key,这些基础步骤以前有提到。

    这次我们还是以C#为例来讲解接口。

    首先是接口规范:

    一、接口描述/说明

    1. 上门取件下单接口

    (1)此功能是为买家在退货时,提供的一种省心,便捷的物流服务,当买家购买的商品在申请换货或者发起维权投诉时需要退货,不需要自己邮寄商品,由物流公司安排快递员上门取件的一项服务。
    (2)下单需指定相应的快递公司编码,格式不对或则编码错误都会返回失败的信息。

    (3)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。避免传递中文数据是出现乱码
    (4)接口地址:

    沙箱地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json

    正式地址(不加密):

    http://api.kdniao.com/api/OOrderService

    正式地址(加密):

    https://api.kdniao.com/api/OOrderService

    接口规则

    1. 请求报文中不允许出现以下特殊字符: '   "   #    &    +    <   >   %  
    2. 预约时提供的收寄方信息必须真实准确。
    3. 用户提供的寄件地址若超出快递公司服务范围,则无快递员上门揽件。
    4. 预约成功后,仅顺丰会返回快递单号;其他快递公司不会返回快递单号,快递员上门取件时通过其他方式或者手写快递单收件。
    5. 因用户原因(如:恶意下单、批量下单长时间不发货等)导致快递公司投诉超过3次,快递鸟将停用此用户接口权限。
    6. 通过快递柜预约成功的用户,凭寄件码在3天内(期间会为您保留快递柜空位,快递员不会上门取件)将货物存至快递柜内,存件成功后快递员会取件发货。

    目前快递鸟接口支持预约取件的快递公司:顺丰速运、百世快递、中通快递、圆通速递、韵达速递、优速快递、德邦快递、邮政国内标快、EMS、天天快递、邮政快递包裹、宅急送、远成快运(YCWL)、安能快递、天地华宇、增益快递、运东西网、品骏快递、通用物流、壹米滴答、承诺达、安迅物流、快8速运、申通快递、顺心捷达、一智通。

    支持预约取件的快递柜:丰巢快递柜(ShipperCode为FCBOX)。

    支持预约取件的同城配:闪送、大马鹿。

    图例 - 数据包结构 (系统级参数{应用级参数})

    系统级参数

     

    参数名称

    类型

    说明

    必须要求

    RequestData

    String

    请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。

    R

    EBusinessID

    String

    商户ID,请在我的服务页面查看。

    R

    RequestType

    String

    请求指令类型:1801

    R

    DataSign

    String

    数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。

    R

    DataType

    String

    请求、返回数据类型:2-json;

    R

    备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)

    前面介绍过快递即时查询接口,订阅推送接口,我们发现快递鸟提供的所有接口统一使用同一结构,系统级参数都一样,根据不同的请求接口指令接入不同的接口

       

     应用级参数

    名称

    类型(字符长度)

    是否必须

    描述

    WarehouseID

    String(50)

    O

    仓库标识(备用字段)

    WarehouseAddress

    String(50)

    O

    仓库地址(备用字段)

    Callback

    String(50)

    O

    用户自定义回传字段

    MemberID

    String(50)

    O

    ERP系统、电商平台等系统或平台类型用户的会员ID或店铺账号等唯一性标识,用于区分其用户

    OrderCode

    String(30)

    R

    订单编号(自定义,不可重复)

    PayType

    Int(1)

    R

    运费支付方式:

    1-现付,2-到付,3-月结,4-第三方付(仅SF支持)

    MonthCode

    String(20)

    C

    月结编号

    ExpType

    Int(2)

    R

    详细快递类型参考《快递公司快递业务类型.xlsx》

    IsReturnSignBill

    Int(1)

    O

    是否要求签回单

    0-不要求,1-要求

    Receiver

    Company

    String(30)

    O

    收件人公司

    Name

    String(30)

    R

    收件人

    Tel

    String(20)

    R

    电话与手机,必填一个

    Mobile

    String(20)

    PostCode

    String(10)

    C

    收件地邮编(ShipperCode为EMS、YZPY、YZBK时必填)

    ProvinceName

    String(20)

    R

    收件省

    (如广东省,不要缺少“省”;如是直辖市,请直接传北京、上海等;

    如是自治区,请直接传广西壮族自治区等)

    CityName

    String(20)

    R

    收件市(如深圳市,不要缺少“市;

    如是市辖区,请直接传北京市、上海市等”)

    ExpAreaName

    String(20)

    R

    收件区/县(如福田区,不要缺少“区”或“县”)

    Address

    String(100)

    R

    收件人详细地址

     Sender

    Company

    String(30)

    O

    发件人公司

    Name

    String(30)

    R

    发件人

    Tel

    String(20)

    R

    电话与手机,必填一个

    Mobile

    String(20)

    PostCode

    String(10)

    C

    发件地邮编(ShipperCode为EMS、YZPY、YZBK时必填)

    ProvinceName

    String(20)

    R

    发件省

    (如广东省,不要缺少“省”;

    如是直辖市,请直接传北京、上海等;

    如是自治区,请直接传广西壮族自治区等)

    CityName

    String(20)

    R

    发件市(如深圳市,不要缺少“市;

    如是市辖区,请直接传北京市、上海市等”)

    ExpAreaName

    String(20)

    R    

    发件区/县(如福田区,不要缺少“区”或“县”)

    Address

    String(100)

    R

    发件人详细地址(实际取件)

    SenderShowAddress

    String(100)

    O

    发件人详细地址

    StartDate

    Date

    O

    上门揽件时间段,格式:YYYY-MM-DD HH24:MM:SS

    EndDate

    Weight

    Double(10,3)

    O

    包裹总重量kg

    Quantity

    Int(2)

    R

    包裹数,一个包裹对应一个运单号,如果是大于1个包裹,返回则按照子母件的方式返回母运单号和子运单号

    Volume

    Double(20,3)

    O

    包裹总体积m3

    Remark

    String(60)

    O

    备注

    AddService

    Name

    String(20)

    O

    增值服务名称

    Value

    String(30)

    O

    增值服务值

    CustomerID

    String(30)

    O

    客户标识

    Commodity

    GoodsName

    String(100)

    R

    商品名称

    GoodsCode

    String(20)

    O

    商品编码

    Goodsquantity

    Int(5)

    O

    商品件数

    GoodsPrice

    Double(10)

    O

    商品价格

    GoodsWeight

    Double(10,3)

    O

    商品重量kg

    GoodsDesc

    String(50)

    O

    商品描述

    GoodsVol

    Double(15,3)

    O

    商品体积m3

    PackingType

    Int(2)

    C

    包装类型(快运字段)默认为0;

    0-纸,1-纤,2-木,3-托膜,4-木托,99-其他

    DeliveryMethod

    Int(1)

    C

    送货方式(快运字段)默认为0;

    0-自提,1-送货上门(不含上楼),2-送货上楼

    请求示例:

    {

      "OrderCode": "012657018199",

      "ShipperCode": "SF",

      "PayType": 1,

      "MonthCode": "1234567890",

      "ExpType": 1,

      "Sender": {

        "Company": "LV",

        "Name": "Taylor",

        "Mobile": "15018442396",

        "ProvinceName": "上海",

        "CityName": "上海市",

        "ExpAreaName": "青浦区",

        "Address": "明珠路"

      },

      "Receiver": {

        "Company": "GCCUI",

        "Name": "Yann",

        "Mobile": "15018442396",

        "ProvinceName": "北京",

        "CityName": "北京市",

        "ExpAreaName": "朝阳区",

        "Address": "三里屯街道"

      },

      "Commodity": [

    {

          "GoodsName": "鞋子",

          "Goodsquantity": 1,

          "GoodsWeight": 1.0

        }

      ],

      "AddService": [

        {

          "Name": "COD",

          "Value": "1020"

    " CustomerID ": "1234567890"

        }

      ],

      "Weight": 1.0,

      "Quantity": 1,

      "Volume": 0.0,

      "Remark": "小心轻放"

    }

    返回参数

    名称

    类型(字符长度)

    是否必须

    描述

    EBusinessID

    String(10)

    R

    用户ID

    Order.OrderCode

    String(30)

    R

    订单编号

    Order.KDNOrderCode

    String(30)

    R

    快递鸟订单编号

    Order.ShipperCode

    String(10)

    R

    快递公司编码

    Order.LogisticCode

    String(30)

    O

    快递单号

    Success

    Bool(10)

    R

    成功与否(true/false)

    ResultCode

    String(5)

    R

    返回编号

    Reason

    String(50)

    O

    失败原因

    UniquerRequestNumber

    String(50)

    R

    唯一标识

    返回示例:

    {

        "EBusinessID": "1237100",

        "Success": true,

        "Order": {

            "OrderCode": "012657018199",

    "KDNOrderCode": "KDN012657018199",

            " ShipperCode ": " SF ",

            " LogisticCode ": "615123456789"

        },

        "ResultCode": "100",

        "Reason": ""

    }

    提供源码下载:

    https://download.csdn.net/download/yanghanwen/12139326

    调用第三方物流接口,替换自己的key就能直接使用,主要实现了物流在线轨迹查询,订单订阅,轨迹推送,支持500多家的快递查询接口,包括主流的四通一达,支持上门取件服务,其他接口调用,修改调用指令和参数就能实现。

    演示截图:

     

  • 相关阅读:
    默认约束(十六)
    唯一约束(十五)
    主键约束(十四)
    自动编号(十三)
    空值(NULL)和非空(NOT NULL)(十二)
    Codeforces Round #249 (Div. 2) A B
    MySQL 採用Xtrabackup对数据库进行全库备份
    强算KMeans聚类算法演示器
    提高短信营销效果的四大技巧分析
    14年7月总结
  • 原文地址:https://www.cnblogs.com/51api/p/12306962.html
Copyright © 2011-2022 走看看