日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java cs 顺丰运单_JAVA接入顺丰快递

發(fā)布時間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java cs 顺丰运单_JAVA接入顺丰快递 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

下載到項目中后放到lib文件夾下,引入:

sf.sdk

sf

1.0

system

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

需要從豐橋獲取的參數(shù):

@Value("${sf.clientCode}")

private String clientCode; //商戶號

@Value("${sf.checkword}")

private String checkword; //驗證碼

@Value("${sf.custid}")

private String custid; //月付id 我這里使用的是寄付月結(jié)

順豐使用xml做數(shù)據(jù)交互,這里貼一些簡單的轉(zhuǎn)換工具類

具體的字段含義查看順豐的文檔

快速下單轉(zhuǎn)換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();

}

訂單查詢接口是在下單后沒有返回運單號時主動查詢運單號使用的,這里我一開始理解為查詢物流信息的接口了 ̄□ ̄||

/**

* 獲取順豐訂單結(jié)果查詢接口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();

}

除了下單接口參數(shù)略多一下,其他接口大致相同

查詢物流信息接口

/**

* 獲取順豐路由查詢接口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();

}

傳入?yún)?shù)得到拼接好的xml數(shù)據(jù)后開始請求順豐:

public String callSf(String xmlStr) {

CallExpressServiceTools client = CallExpressServiceTools.getInstance();

log.info("開始調(diào)用順豐接口下單,請求報文:{}", xmlStr);

String respXml = client.callSfExpressServiceByCSIM(null, xmlStr, clientCode, checkword);

log.info("請求完成,返回報文:{}", respXml);

return respXml;

}

得到報文后在進行解析即可

總體來說使用順豐新的sdk接入還是非常方便的。

記錄下代碼,方面下次使用。

總結(jié)

以上是生活随笔為你收集整理的java cs 顺丰运单_JAVA接入顺丰快递的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。