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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常用快递电子面单接口API对接方法

發布時間:2023/12/8 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常用快递电子面单接口API对接方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

快遞電子面單接口API比較常用在電商、倉儲系統和ERP系統,對接后不用下載安裝軟件,可以直接嵌入系統網站調用。

目前有快遞鳥和菜鳥提供集成的電子面單打印接口,分別支持20,15家快遞的電子面單打印

1.1????? 接口

(1)、訂單編號(OrderCode)不可重復提交,重復提交系統會返回具體錯誤代碼。

(2)、支持常用20家快遞電子面單打印。

(3)、測試地址:http://testapi.kdniao.cc:8081/api/eorderservice/

(4)、正式地址:http://api.kdniao.cc/api/EOrderService

(5)、接口申請:快遞鳥網站注冊賬號申請接口

(6)、單號申請:部分快遞需提前申請單號

1.2????? 系統級和應用級輸入參數

系統級輸入參數

應用級輸入參數

類型

是否必須

描述

RequestData(必填參數,請求內容,JSON格式,須和DataType一致)

CallBack

String

O

用戶自定義回調信息

MemberID

String

O

會員標識

平臺方與快遞鳥統一用戶標識的商家ID

CustomerName

String

O

電子面單客戶賬號

(與快遞網點申請或通過快遞鳥官網申請或通過申請電子面單客戶號申請)

CustomerPwd

String

O

電子面單密碼

SendSite

String

O

收件網點標識

ShipperCode

String

R

快遞公司編碼

LogisticCode

String

O

快遞單號

ThrOrderCode

String

O

第三方訂單號

OrderCode

String

R

訂單編號

MonthCode

String

C

月結編碼

PayType

Int

R

郵費支付方式:

1-現付,2-到付,3-月結,4-第三方支付

ExpType

String

R

快遞類型:1-標準快件

IsNotice

Int

O

是否通知快遞員上門攬件:0-通知;1-不通知;不填則默認為1

Cost

Double

O

寄件費(運費)

OtherCost

Double

O

其他費用

Receiver

Company

String

O

收件人公司

Name

String

R

收件人

Tel

String

R

電話與手機,必填一個

Mobile

String

PostCode

String

O

收件人郵編

ProvinceName

String

R

收件省(如廣東省,不要缺少“省”)

CityName

String

R

收件市(如深圳市,不要缺少“市”)

ExpAreaName

String

O

收件區(如福田區,不要缺少“區”或“縣”)

Address

String

R

收件人詳細地址

Sender

Company

String

O

發件人公司

Name

String

R

發件人

Tel

String

R

電話與手機,必填一個

Mobile

String

?

PostCode

String

O

發件人郵編

ProvinceName

String

R

發件省(如廣東省,不要缺少“省”)

CityName

String

R

發件市(如深圳市,不要缺少“市”)

ExpAreaName

String

O

發件區(如福田區,不要缺少“區”或“縣”)

Address

String

R

發件詳細地址

StartDate

String

O

上門取貨時間段:

"yyyy-MM-dd HH:mm:ss"格式化,本文中所有時間格式相同

EndDate

String

O

Weight

Double

O

物品總重量kg

Quantity

Int

O

件數/包裹數

Volume

Double

O

物品總體積m3

Remark

String

O

備注

AddService

Name

String

0

增值服務名稱

Value

String

0

增值服務值

CustomerID

String

0

客戶標識(選填)

Commodity

GoodsName

String

R

商品名稱

GoodsCode

String

O

商品編碼

Goodsquantity

Int

O

件數

GoodsPrice

Double

O

商品價格

GoodsWeight

Double

O

商品重量kg

GoodsDesc

String

O

商品描述

GoodsVol

Double

O

商品體積m3

IsReturnPrintTemplate

String

O

返回電子面單模板:

0-不需要;1-需要

?

IsSendMessage

Int

O

是否訂閱短信

0-不需要;1-需要

?

TemplateSize

String

O

模板尺寸

EBusinessID

?

String

R

商戶ID

RequestType

String

R

請求指令類型:1007

DataSign

String

R

數據內容簽名

DataType

String

R

請求、返回數據類型: 2-json

???????

?

1.3????? 返回結果參數

l? 同步返回

參數名稱

類型

必須要求

說明

EBusinessID

String

R

電商用戶ID

Order

OrderCode

String

R

訂單編號

ShipperCode

String

R

快遞公司編碼

LogisticCode

String

R

快遞單號

MarkDestination

String

O

大頭筆

OriginCode

String

O

始發地區域編碼

OriginName

String

O

始發地/始發網點

DestinatioCode

String

O

目的地區域編碼

DestinatioName

String

O

目的地/到達網點

SortingCode

String

O

分揀編碼

PackageCode

String

O

集包編碼

Success

Bool

R

成功與否

ResultCode

String

R

錯誤編碼

Reason

String

O

失敗原因

UniquerRequestNumber

String

R

唯一標識

PrintTemplate

String

O

面單打印模板

EstimatedDeliveryTime

String

O

訂單預計到貨時間yyyy-mm-dd

Callback

String

O

用戶自定義回調信息

SubCount

Int

O

子單數量

SubOrders

String

O

子單號

SubPrintTemplates

String

O

子單模板

ReceiverSafePhone

String

O

收件人安全電話

SenderSafePhone

String

0

寄件人安全電話

DialPage

String

R

撥號頁面網址(轉換成二維碼可掃描撥號)

?

?

2 ? ? ? ?批量打印接口對接demo

package cc.kdniao.api;import java.io.IOException;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.security.MessageDigest;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.sun.xml.internal.messaging.saaj.util.Base64;/*** Servlet implementation class printOrder*/@WebServlet("/printOrder")public class printOrder extends HttpServlet {private static final long serialVersionUID = 1L;final String EBussinessID = "";//kdniao.com EBusinessIDfinal String AppKey = ""; //kdniao.com AppKeyfinal Integer IsPreview = 0; //是否預覽 0-不預覽 1-預覽/*** @see HttpServlet#HttpServlet()*/public printOrder() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//response.getWriter().append("Served at: ").append(request.getContextPath());PrintWriter print = response.getWriter();String jsonResult = "";try {String ip = getIpAddress(request);jsonResult = getPrintParam(ip);} catch (Exception e) {//write log}print.println(jsonResult);print.flush();print.close();}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, UnsupportedEncodingException {// TODO Auto-generated method stubresponse.setContentType("");PrintWriter print = response.getWriter();String jsonResult = "";try {String ip = getIpAddress(request);jsonResult = getPrintParam(ip);} catch (Exception e) {//wirte log}print.println(jsonResult);print.flush();print.close();}/*** get print order param to json string* @return** @throws Exception*/private String getPrintParam(String ip) throws Exception {String data = "[{\"OrderCode\":\"234351215333113311353\",\"PortName\":\"SF\"},{\"OrderCode\":\"234351215333113311354\",\"PortName\":\"打印機名稱二\"}]";String result = "{\"RequestData\": \"" + URLEncoder.encode(data, "UTF-8") + "\", \"EBusinessID\":\"" + EBussinessID + "\", \"DataSign\":\"" + encrpy(ip + data, AppKey) + "\", \"IsPreview\":\""+ IsPreview + "\"}";return result;}private String md5(String str, String charset) throws Exception {MessageDigest md = MessageDigest.getInstance("MD5");md.update(str.getBytes(charset));byte[] result = md.digest();StringBuffer sb = new StringBuffer(32);for (int i = 0; i < result.length; i++) {int val = result[i] & 0xff;if (val <= 0xf) {sb.append("0");}sb.append(Integer.toHexString(val));}return sb.toString().toLowerCase();}private String encrpy(String content, String key) throws UnsupportedEncodingException, Exception {String charset = "UTF-8";return new String(Base64.encode(md5(content + key, charset).getBytes(charset)));}/*** 獲取請求主機IP地址,如果通過代理進來,則透過防火墻獲取真實IP地址;* * @param request* @return* @throws IOException*/public final static String getIpAddress(HttpServletRequest request) throws IOException {// 獲取請求主機IP地址,如果通過代理進來,則透過防火墻獲取真實IP地址 String ip = request.getHeader("X-Forwarded-For");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_CLIENT_IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_FORWARDED_FOR");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}} else if (ip.length() > 15) {String[] ips = ip.split(",");for (int index = 0; index < ips.length; index++) {String strIp = (String) ips[index];if (!("unknown".equalsIgnoreCase(strIp))) {ip = strIp;break;}}}return ip;}}

  


?

轉載于:https://www.cnblogs.com/jianyou/p/7875192.html

總結

以上是生活随笔為你收集整理的常用快递电子面单接口API对接方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。