下载到项目中后放到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("orderid='" + params.get("orderid") + "'").append(" ");

//返回顺丰运单号

strBuilder.append("express_type='1'").append(" ");

//寄件方信息

strBuilder.append("j_province='" + params.get("j_province") + "'").append(" ");

strBuilder.append("j_city='" + params.get("j_city") + "'").append(" ");

strBuilder.append("j_company='" + params.get("j_company") + "'").append(" ");

strBuilder.append("j_contact='" + params.get("j_contact") + "'").append(" ");

strBuilder.append("j_tel='" + params.get("j_tel") + "'").append(" ");

strBuilder.append("j_address='" + params.get("j_address") + "'").append(" ");

//收件方信息

strBuilder.append("d_province='" + params.get("d_province") + "'").append(" ");

strBuilder.append("d_city='" + params.get("d_city") + "'").append(" ");

strBuilder.append("d_county='" + params.get("d_county") + "'").append(" ");

strBuilder.append("d_company='" + params.get("d_company") + "'").append(" ");

strBuilder.append("d_tel='" + params.get("d_tel") + "'").append(" ");

strBuilder.append("d_contact='" + params.get("d_contact") + "'").append(" ");

strBuilder.append("d_address='" + params.get("d_address") + "'").append(" ");

//货物信息

strBuilder.append("parcel_quantity='1'").append(" ");

strBuilder.append("pay_method='3'").append(" ");

strBuilder.append("custid ='" + params.get("custid") + "'").append(" ");

strBuilder.append("customs_batchs=''").append(" ");

strBuilder.append("cargo='服装'").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("orderid='" + orderNo + "'").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("tracking_type='1'").append(" ");

strBuilder.append("method_type='1'").append(" ");

strBuilder.append("tracking_number='" + params.get("mailno") + "'").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("

strBuilder.append("orderid='").append("orderNo").append("' ");

strBuilder.append("dealtype='2'>").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接入还是非常方便的。

记录下代码,方面下次使用。

顺丰java_JAVA接入顺丰快递相关推荐

  1. 顺丰快递代码表java_JAVA接入顺丰快递

    下载到项目中后放到lib文件夹下,引入: sf.sdk sf 1.0 system ${project.basedir}/src/main/resources/lib/SF-CSIM-EXPRESS- ...

  2. java接入顺丰快递api(有可运行demo)(包括下单、路由查询、路由推送、查询订单状态、取消订单)

    故事发生的背景: 公司快递业务这一块之前接入的是快递100,由于快递100的推送的实时性没有达到公司的要求,而且公司全都用的顺丰快递,所以直接接入了顺丰快递的api.demo文章最后下载(新增了jso ...

  3. 顺丰快递业务接入API总览-快递鸟

    顺丰业务接入API,为使用顺丰服务的商家使用.自研工具,三方ERP等需使用顺丰的下单,面单打印,轨迹查询等服务,可选择此类接入. 1.零担快递类 适用于顺丰0~3000KG产品的物流服务,适用于B2C ...

  4. php快递查询接口,一次接入顺丰、京东、申通、圆通、韵达、中通、天天、百世、邮政、EMS等主流快递公司

    快递100php快递查询接口-一次性接入顺丰.京东.申通.圆通.韵达.中通.天天.百世.邮政.EMS等主流快递公司,只需要复制源码,并将部分参数修改为您的账户参数即可. 此php接口demo目录内容包 ...

  5. JAVA快递寄件下单api接口一次性接入顺丰,中通,圆通,申通,韵达,京东,德邦,百世,天天

    为了让各位更快地接入顺丰,中通,圆通,申通,韵达,京东,德邦,百世,天天等主流快递公司,大家可以把源码复制到你的项目上,将源码里的参数改成自己的账户参数就能直接使用了. ​ 此篇java demo方便 ...

  6. JavaWeb企业级项目中接入顺丰官方API实现物流实时查询(亲测有效)

    由于现在顺丰与快递100闹掰了,所以使用快递一百已经查不到顺丰的物流信息了,包括快递鸟等,现在想要在项目中实现顺丰快递的物流查询只能用顺丰官方API来查询,然而这个官方的API并没有快递一百那些接口那 ...

  7. 通达系、顺丰、极兔:快递业重新排位

    配图来自Canva可画 电子商务的流行影响了太多行业,其中影响最为深远的无疑是快递行业.尽管传统电商稍显式微,但直播电商.社交电商以及跨境电商等新型电商模式的兴起,依旧推动着快递行业向前发展,在庞大用 ...

  8. 顺丰不行了吗?对快递行业的深度理解

    顺丰不行了吗?对快递行业的深度理解 https://www.toutiao.com/i6950169599203688997/?tt_from=weixin&utm_campaign=clie ...

  9. 解决快递100普通key不能查询顺丰、申通等快递问题

    已在其他板块里和MYCNCART官网插件区提供了下载插件,此贴只是针对快递100的接口进行分析处理 -------------------------------------------------- ...

最新文章

  1. office频繁显示停止工作
  2. python3的样子_python3与python2不一样的地方
  3. 【机器学习基础】机器学习模型什么时候需要做数据标准化?
  4. nsa服务器win7系统,Win7系统访问NAS和Samba服务器失败怎么处理
  5. 基本的Testbench的搭建
  6. 红外线摄像机的选择与使用及原理
  7. jupyter notebook使用opencv的例子_VSCode中使用jupyter notebook
  8. 10.24 环境变量PATH,cp,mv,文档查看cat/more/less/head/tail
  9. Flask框架-模板
  10. 技术干货 | 六分钟学会使用 HBuilder 引入构建 mPaaS 小程序
  11. Python颜色空间转换(sRGB,AdobeRGB,CIE XYZ,Lab,HSV互转)
  12. 赚钱鬼才:即使开放外部支付,苹果App Store仍坚持收取佣金
  13. 【点云处理之论文狂读经典版7】—— Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs
  14. 海豚湾(还是忍不住说日本人真的太垃圾了)
  15. 苹果拼图软件测试,视频照片拼图APP
  16. Chrome插件扩展程序的默认安装目录
  17. 写给女朋友的java_Java会说情话的女朋友
  18. 怎样判断小红书被限流?小红书被限流有这几大表现
  19. 皮尔逊相关系数和检验P值
  20. 设计师浅谈标志设计经验

热门文章

  1. 玉米社:SEM竞价推广预算设置方法
  2. #2:在颓宅的边缘开始试探——4
  3. flv f4v mp4 视频播放器代码
  4. 《计算机网络》——IEEE 802.11 无线局域网、无线局域网的分类、广域网、PPP协议、HDLC协议、链路层设备、冲突域和广播域
  5. 从基础综述、论文笔记到工程经验、训练技巧:值得一看的目标检测好文推荐...
  6. 好好说话之Tcache Attack(3):tcache stashing unlink attack
  7. con 元器件符号_PROTEUS中元器件符号
  8. linux安装 jenkins(清华大学镜像站)
  9. 声纹识别开源框架python_GitHub - yeyupiaoling/VoiceprintRecognition-Tensorflow: 使用Tensorflow实现声纹识别,博客地址:...
  10. 2021年江苏镇江公务员考试报考指南