顺丰java_JAVA接入顺丰快递
下载到项目中后放到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接入顺丰快递相关推荐
- 顺丰快递代码表java_JAVA接入顺丰快递
下载到项目中后放到lib文件夹下,引入: sf.sdk sf 1.0 system ${project.basedir}/src/main/resources/lib/SF-CSIM-EXPRESS- ...
- java接入顺丰快递api(有可运行demo)(包括下单、路由查询、路由推送、查询订单状态、取消订单)
故事发生的背景: 公司快递业务这一块之前接入的是快递100,由于快递100的推送的实时性没有达到公司的要求,而且公司全都用的顺丰快递,所以直接接入了顺丰快递的api.demo文章最后下载(新增了jso ...
- 顺丰快递业务接入API总览-快递鸟
顺丰业务接入API,为使用顺丰服务的商家使用.自研工具,三方ERP等需使用顺丰的下单,面单打印,轨迹查询等服务,可选择此类接入. 1.零担快递类 适用于顺丰0~3000KG产品的物流服务,适用于B2C ...
- php快递查询接口,一次接入顺丰、京东、申通、圆通、韵达、中通、天天、百世、邮政、EMS等主流快递公司
快递100php快递查询接口-一次性接入顺丰.京东.申通.圆通.韵达.中通.天天.百世.邮政.EMS等主流快递公司,只需要复制源码,并将部分参数修改为您的账户参数即可. 此php接口demo目录内容包 ...
- JAVA快递寄件下单api接口一次性接入顺丰,中通,圆通,申通,韵达,京东,德邦,百世,天天
为了让各位更快地接入顺丰,中通,圆通,申通,韵达,京东,德邦,百世,天天等主流快递公司,大家可以把源码复制到你的项目上,将源码里的参数改成自己的账户参数就能直接使用了. 此篇java demo方便 ...
- JavaWeb企业级项目中接入顺丰官方API实现物流实时查询(亲测有效)
由于现在顺丰与快递100闹掰了,所以使用快递一百已经查不到顺丰的物流信息了,包括快递鸟等,现在想要在项目中实现顺丰快递的物流查询只能用顺丰官方API来查询,然而这个官方的API并没有快递一百那些接口那 ...
- 通达系、顺丰、极兔:快递业重新排位
配图来自Canva可画 电子商务的流行影响了太多行业,其中影响最为深远的无疑是快递行业.尽管传统电商稍显式微,但直播电商.社交电商以及跨境电商等新型电商模式的兴起,依旧推动着快递行业向前发展,在庞大用 ...
- 顺丰不行了吗?对快递行业的深度理解
顺丰不行了吗?对快递行业的深度理解 https://www.toutiao.com/i6950169599203688997/?tt_from=weixin&utm_campaign=clie ...
- 解决快递100普通key不能查询顺丰、申通等快递问题
已在其他板块里和MYCNCART官网插件区提供了下载插件,此贴只是针对快递100的接口进行分析处理 -------------------------------------------------- ...
最新文章
- office频繁显示停止工作
- python3的样子_python3与python2不一样的地方
- 【机器学习基础】机器学习模型什么时候需要做数据标准化?
- nsa服务器win7系统,Win7系统访问NAS和Samba服务器失败怎么处理
- 基本的Testbench的搭建
- 红外线摄像机的选择与使用及原理
- jupyter notebook使用opencv的例子_VSCode中使用jupyter notebook
- 10.24 环境变量PATH,cp,mv,文档查看cat/more/less/head/tail
- Flask框架-模板
- 技术干货 | 六分钟学会使用 HBuilder 引入构建 mPaaS 小程序
- Python颜色空间转换(sRGB,AdobeRGB,CIE XYZ,Lab,HSV互转)
- 赚钱鬼才:即使开放外部支付,苹果App Store仍坚持收取佣金
- 【点云处理之论文狂读经典版7】—— Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs
- 海豚湾(还是忍不住说日本人真的太垃圾了)
- 苹果拼图软件测试,视频照片拼图APP
- Chrome插件扩展程序的默认安装目录
- 写给女朋友的java_Java会说情话的女朋友
- 怎样判断小红书被限流?小红书被限流有这几大表现
- 皮尔逊相关系数和检验P值
- 设计师浅谈标志设计经验
热门文章
- 玉米社:SEM竞价推广预算设置方法
- #2:在颓宅的边缘开始试探——4
- flv f4v mp4 视频播放器代码
- 《计算机网络》——IEEE 802.11 无线局域网、无线局域网的分类、广域网、PPP协议、HDLC协议、链路层设备、冲突域和广播域
- 从基础综述、论文笔记到工程经验、训练技巧:值得一看的目标检测好文推荐...
- 好好说话之Tcache Attack(3):tcache stashing unlink attack
- con 元器件符号_PROTEUS中元器件符号
- linux安装 jenkins(清华大学镜像站)
- 声纹识别开源框架python_GitHub - yeyupiaoling/VoiceprintRecognition-Tensorflow: 使用Tensorflow实现声纹识别,博客地址:...
- 2021年江苏镇江公务员考试报考指南