资讯专栏INFORMATION COLUMN

JAVA接入顺丰快递

Freeman / 1094人阅读

丰桥地址

下载到项目中后放到lib文件夹下,引入:

 
            sf.sdk
            sf
            1.0
            system
            ${project.basedir}/src/main/resources/lib/SF-CSIM-EXPRESS-SDK-V1.6.jar
 

需要从丰桥获取的参数:

    @Value("${sf.clientCode}")
    private String clientCode;    //商户号

    @Value("${sf.checkword}")
    private String checkword;    //验证码

    @Value("${sf.custid}")
    private String custid;        //月付id 我这里使用的是寄付月结

顺丰使用xml做数据交互,这里贴一些简单的转换工具类
具体的字段含义查看顺丰的文档
快速下单转换xml方法:

 public static String getOrderServiceRequestXml(Map params) {


        StringBuilder strBuilder = new StringBuilder();
        strBuilder.append("");
        strBuilder.append("" + params.get("clientCode") + "");
        strBuilder.append("");
        strBuilder.append("");
        strBuilder.append("");
        strBuilder.append("");
        strBuilder.append("");
        strBuilder.append("");

        return strBuilder.toString();
    }

订单查询接口是在下单后没有返回运单号时主动查询运单号使用的,这里我一开始理解为查询物流信息的接口了 ̄□ ̄||

  /**
     * 获取顺丰订单结果查询接口xml
     *
     * @param params
     * @return
     */
    public static String getOrderSearchServiceRequestXml(Map params) {
        String orderNo = params.get("orderNo");
        StringBuilder strBuilder = new StringBuilder();
        strBuilder.append("");
        strBuilder.append("" + params.get("clientCode") + "");
        strBuilder.append("");
        strBuilder.append(" ");
        strBuilder.append("");
        strBuilder.append("");
        return strBuilder.toString();
    }

除了下单接口参数略多一下,其他接口大致相同
查询物流信息接口

  /**
     * 获取顺丰路由查询接口xml
     *
     * @param params
     * @return
     */
    public static String getRouteServiceRequestXml(Map params) {
        StringBuilder strBuilder = new StringBuilder();
        strBuilder.append("");
        strBuilder.append("" + params.get("clientCode") + "");
        strBuilder.append("");
        strBuilder.append("");
        strBuilder.append("");
        strBuilder.append("");
        strBuilder.append("");
        return strBuilder.toString();
    }

取消订单接口

    /**
     * 取消订单
     *
     * @param params
     * @return
     */
    public static String getConfirmRequestXml(Map params) {
        StringBuilder strBuilder = new StringBuilder();
        strBuilder.append("");
        strBuilder.append("").append(params.get("clientCode")).append("");
        strBuilder.append("");
        strBuilder.append("").append(" ");
        strBuilder.append("");
        strBuilder.append("");
        strBuilder.append("");
        return strBuilder.toString();
    }

传入参数得到拼接好的xml数据后开始请求顺丰:

  public String callSf(String xmlStr) {
        CallExpressServiceTools client = CallExpressServiceTools.getInstance();
        log.info("开始调用顺丰接口下单,请求报文:{}", xmlStr);
        String respXml = client.callSfExpressServiceByCSIM(null, xmlStr, clientCode, checkword);
        log.info("请求完成,返回报文:{}", respXml);
        return respXml;
    }

得到报文后在进行解析即可
总体来说使用顺丰新的sdk接入还是非常方便的。
记录下代码,方面下次使用。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76784.html

相关文章

  • 免费物流快递查询API接口快速对接攻略(中通、申通、顺丰、韵达)

    摘要:快递查询接口是使用的物流单号即可实现查询物流信息。目前快递查询接口有两种实现方式,一种是主动查询,一种是订阅接口推送数据。另外,快递鸟还有在途监控电子面单等其他的接口方案,可以根据公司需求来选择。 快递查询API接口是使用的物流单号即可实现查询物流信息。主要应用在电商商城、ERP系统商、WMS系统商、快递柜、银行等企业。多家快递物流公司接口统一接入,建议对接接口提供商,一次性可以接入多...

    summerpxy 评论0 收藏0
  • 顺丰快递单号查询api接口免费对接参数以及demo

    摘要:快递鸟目前已经入驻了顺丰第三方软件服务平台,对接起来非常方便。如顺丰物流单号应选择快递公司编码接口来源快递鸟返回的物流跟踪信息按照发生的时间升序排列。 showImg(https://segmentfault.com/img/bVbwklp?w=1005&h=351); 顺丰快递对物流信息的管控较为严格,官网上也加上了由腾讯云提供的滑动验证码进行保护,如果需要大批量查询顺丰的物流信息,...

    zlyBear 评论0 收藏0
  • JS设计模式之代理模式

    摘要:什么是代理模式代理模式,类似于明星的经纪人,想要拜访明星,需要先通过经纪人的沟通。不同于装饰器,那种动态加载一个对象,可以说在代理模式当中,代理是早已既定的。又称单一功能原则,面向对象五个基本原则之一。 什么是代理模式 代理模式,类似于明星的经纪人,想要拜访明星,需要先通过经纪人的沟通。而在JS当中,如果想访问一个类,需要通过另一个类来间接访问 。不同于装饰器,那种动态加载一个对象,可...

    widuu 评论0 收藏0
  • 企业“互怼”背后 是云计算平台的竞争

    六月精阳,人们的火气难免旺了些,连全球知名品牌也失去了风度,不再温良恭俭让,把过去私下里的暗战摆在台面上互怼。6月23日,全球零售霸主美国沃尔玛私下要求合作厂商,包括技术供应商、电商和批发商,停止使用亚马逊云计算服务(Amazon Web System,AWS);而亚马逊发言人则在6月27日公开谴责称,沃尔玛是在用自己采购的权限控制供应商,这完全是霸凌(Bully)行为。无独有偶,上月初,中国也有...

    kun_jian 评论0 收藏0
  • 一个案例读懂JS事件委托

    摘要:网上有关于事件委托的一个取快递例子,十分生动,这里我对它作一些修改和拓展,然后通过程序来说明事件委托的机制。还有一个优点当增加新的节点时,自动携带父元素的事件效果。以上便是事件委托的基本思想。与其对应的还有事件捕获。 事件委托(又名事件代理),就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。 网上有关于事件委托的一个取快递例子,十分生动,这里我对它作一些修改和拓...

    ad6623 评论0 收藏0

发表评论

0条评论

Freeman

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<