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接入顺丰快递的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 病毒防火墙推荐 - avast! ant
- 下一篇: 嵌入式系统设计与应用