java cs 顺丰运单_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 cs 顺丰运单_JAVA接入顺丰快递相关推荐
- 接口调用-【1】顺丰运单查询
1.目的:批量调用顺丰运单路由接口,更新最新物流状态 [1]到顺丰开放平台-服务与支持-开放规范-API-SDK使用-直接下载SDK [2]开通正式接口必须要完成沙盒的3次成功调用. 2.这里有个坑, ...
- java工程师的终极书单_Java 9 –终极功能列表
java工程师的终极书单 这篇文章将针对即将到来的Java 9版本进行更新,新增功能 ( 最新更新:2014年 9月9日 ) OpenJDK开发正在加快速度:2014年3月Java 8发布后,我们预计 ...
- JAVA接入顺丰快递
丰桥地址 下载到项目中后放到lib文件夹下,引入: <dependency><groupId>sf.sdk</groupId><artifactId>s ...
- 顺丰java_JAVA接入顺丰快递
下载到项目中后放到lib文件夹下,引入: sf.sdk sf 1.0 system ${project.basedir}/src/main/resources/lib/SF-CSIM-EXPRESS- ...
- 顺丰快递代码表java_JAVA接入顺丰快递
下载到项目中后放到lib文件夹下,引入: sf.sdk sf 1.0 system ${project.basedir}/src/main/resources/lib/SF-CSIM-EXPRESS- ...
- java免费对接物流快递鸟单号查询接口API
快递查询接口是指快递查询网对外开放的应用程序接口,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序. 技术文档请参考快递鸟官网api:免费查询快递接口_100%安 ...
- JAVA快递寄件下单api接口一次性接入顺丰,中通,圆通,申通,韵达,京东,德邦,百世,天天
为了让各位更快地接入顺丰,中通,圆通,申通,韵达,京东,德邦,百世,天天等主流快递公司,大家可以把源码复制到你的项目上,将源码里的参数改成自己的账户参数就能直接使用了. 此篇java demo方便 ...
- java接入顺丰快递api(有可运行demo)(包括下单、路由查询、路由推送、查询订单状态、取消订单)
故事发生的背景: 公司快递业务这一块之前接入的是快递100,由于快递100的推送的实时性没有达到公司的要求,而且公司全都用的顺丰快递,所以直接接入了顺丰快递的api.demo文章最后下载(新增了jso ...
- JavaWeb企业级项目中接入顺丰官方API实现物流实时查询(亲测有效)
由于现在顺丰与快递100闹掰了,所以使用快递一百已经查不到顺丰的物流信息了,包括快递鸟等,现在想要在项目中实现顺丰快递的物流查询只能用顺丰官方API来查询,然而这个官方的API并没有快递一百那些接口那 ...
最新文章
- 算法之【仿竖式算法】
- eclipse spring boot项目搭建_spring-boot-plus项目配置文件(四)
- hadoop2.x常用端口及定义方法
- 步进电机的单双极驱动
- stm32之 GPIO_Remap_SWJ_Disable之后无法使用swd下载 程序解决方法
- 00后都选哪些大厂?数据盘点00后入职情况,字节跳动门槛低?
- 【NLP】图解Transformer(完整版)
- 阿里云文件上传工具类
- 动态规划之一最长上升子序列LIS
- Java处理某些图片红色问题
- dart系列之:在dart中使用数字和字符串
- [编程入门]宏定义之闰年判断:给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计
- 一个servlet,多个dwr.xml配置文件
- nginx+uwsgi 部署
- 第三周练习 part3 --- 文件的操作
- 中国要做物联网技术的强国,而非大国
- Fitts’ Law / 菲茨定律
- java 基于jave2实现视频处理 截屏,加水印,压缩,获取时长
- python大文件去重_python3 大文件去重的方法
- ReferenceError: request is not defined
热门文章
- 【微机原理与接口技术】实验5 可编程并行接口(8255)
- 墨客 去中心化平台的商业逻辑
- 苹果批Meta高额抽成行为:暴露了其虚伪面孔
- 前端基础篇之CSS世界
- Mybatis Maven依赖
- Java项目酒店管理系统(java+SSM+Maven+LayUI+mysql)
- reason:The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zo
- MarkDown基本语法使用教程
- Unity正在将云渲染市场拱手相让!
- 电脑pdf怎么转换成excel表格呢?