電商物流服務(wù)-物流云
專用API
【更新時(shí)間: 2024.05.06】
主要涵蓋了云物流平臺(tái)提供的一系列應(yīng)用程序編程接口(API),這些接口允許不同的軟件應(yīng)用程序或系統(tǒng)之間進(jìn)行數(shù)據(jù)交換和通信。
|
瀏覽次數(shù)
45
采購人數(shù)
2
試用次數(shù)
0
收藏
×
完成
取消
×
書簽名稱
確定
|
- API詳情
- 使用指南
- 常見 FAQ
- 關(guān)于我們
- 相關(guān)推薦


什么是物流云的電商物流服務(wù)?
云物流API服務(wù)為企業(yè)提供了一種高效、靈活且安全的方式來集成和管理物流服務(wù)。通過利用這些API,企業(yè)可以優(yōu)化物流流程、提高運(yùn)營效率并降低成本。云物流API能夠?qū)⑽锪飨嚓P(guān)的功能集成到第三方應(yīng)用中,如訂單管理、庫存管理、運(yùn)輸跟蹤、貨物查詢等。通過這些API,企業(yè)可以無縫地將物流服務(wù)與自身的業(yè)務(wù)流程相結(jié)合。利用云物流API,企業(yè)可以實(shí)時(shí)獲取物流數(shù)據(jù),如貨物位置、運(yùn)輸狀態(tài)、預(yù)計(jì)到達(dá)時(shí)間等。這有助于企業(yè)做出更準(zhǔn)確的決策,提高運(yùn)營效率。
什么是物流云的電商物流服務(wù)接口?
物流云的電商物流服務(wù)有哪些核心功能?
1. 實(shí)時(shí)物流追蹤:提供實(shí)時(shí)的物流信息追蹤,包括訂單狀態(tài)、配送進(jìn)度、預(yù)計(jì)送達(dá)時(shí)間等。用戶和商家可以通過平臺(tái)或API接口隨時(shí)查詢物流信息,確保信息的透明度和準(zhǔn)確性。
2. 訂單管理:支持訂單的創(chuàng)建、修改、取消、查詢等操作,確保訂單數(shù)據(jù)的完整性和準(zhǔn)確性。實(shí)現(xiàn)訂單狀態(tài)的實(shí)時(shí)更新,并與電商平臺(tái)進(jìn)行無縫對(duì)接,提高訂單處理效率。
3. 倉儲(chǔ)管理:提供庫存查詢、入庫、出庫、盤點(diǎn)等倉儲(chǔ)管理功能,實(shí)現(xiàn)庫存信息的實(shí)時(shí)監(jiān)控。支持庫存預(yù)警功能,幫助商家及時(shí)調(diào)整庫存,避免缺貨或積壓。
4. 配送管理:提供配送路徑規(guī)劃、配送員管理、配送進(jìn)度監(jiān)控等功能,確保貨物按時(shí)送達(dá)。支持多種配送方式,如快遞、自提、定時(shí)配送等,滿足不同用戶的需求。
5. 數(shù)據(jù)分析與預(yù)測(cè):利用大數(shù)據(jù)技術(shù)對(duì)物流數(shù)據(jù)進(jìn)行挖掘和分析,提供銷售預(yù)測(cè)、庫存預(yù)測(cè)等決策支持。通過對(duì)歷史數(shù)據(jù)的分析,優(yōu)化物流路徑和配送策略,提高物流效率。
6. 異常處理與預(yù)警:提供異常訂單處理機(jī)制,如退貨、換貨、退款等,確保用戶權(quán)益得到保障。支持異常預(yù)警功能,如物流延遲、庫存不足等,及時(shí)提醒商家和用戶,減少潛在風(fēng)險(xiǎn)。
7. 供應(yīng)鏈協(xié)同:與供應(yīng)鏈上下游企業(yè)實(shí)現(xiàn)信息共享和協(xié)同工作,提高供應(yīng)鏈的透明度和響應(yīng)速度。支持多平臺(tái)、多渠道的訂單處理和配送,實(shí)現(xiàn)供應(yīng)鏈的快速響應(yīng)和靈活調(diào)整。
8. 智能決策支持:利用人工智能技術(shù)對(duì)物流數(shù)據(jù)進(jìn)行智能分析和預(yù)測(cè),為商家提供智能決策支持。如智能選倉、智能分單、智能調(diào)度等,幫助商家降低物流成本,提高物流效率。
9. 客戶服務(wù)與支持:提供在線客服、電話客服等多種客戶服務(wù)方式,解答用戶疑問,處理用戶投訴。提供物流咨詢、售后支持等服務(wù),提高用戶滿意度和忠誠度。
10. 系統(tǒng)安全與穩(wěn)定:確保系統(tǒng)的安全性和穩(wěn)定性,保護(hù)用戶數(shù)據(jù)和隱私。提供數(shù)據(jù)備份和恢復(fù)機(jī)制,確保在意外情況下數(shù)據(jù)的完整性和可用性。
物流云的電商物流服務(wù)的核心優(yōu)勢(shì)是什么?
![]() 頭部電商服務(wù)能力2000+快遞查詢接口
支持2000+家快遞公司物流查詢,菜鳥為淘系電商提供物流服務(wù)整體解決方案,已經(jīng)實(shí)現(xiàn)調(diào)用物流信息原始數(shù)據(jù),物流軌跡信息全面和精準(zhǔn),覆蓋范圍廣
|
![]() 低延遲高并發(fā)毫秒級(jí)響應(yīng)
阿里云強(qiáng)大的技術(shù)服務(wù)及運(yùn)算能力,提供多維度系統(tǒng)穩(wěn)定性保障,打造穩(wěn)定高效的物流服務(wù),連續(xù)保障了如雙11當(dāng)日超22億次查詢;產(chǎn)品采用高可用架構(gòu),物流負(fù)載容災(zāi)自動(dòng)切換
|
![]() 貼合業(yè)務(wù)需求個(gè)性化定制
針對(duì)項(xiàng)目組建專業(yè)的服務(wù)團(tuán)隊(duì),銷售,產(chǎn)品經(jīng)理,運(yùn)營經(jīng)理,研發(fā)技術(shù),售后管家和項(xiàng)目總監(jiān),多崗位協(xié)同支持項(xiàng)目方案,業(yè)務(wù)測(cè)試和項(xiàng)目運(yùn)營;面向客戶特殊場(chǎng)景提供定制服務(wù),完全耦合業(yè)務(wù)需求
|
![]() 行業(yè)領(lǐng)先技術(shù)性價(jià)比高
開發(fā)者資源豐富,簡(jiǎn)單快速的接入流程,快速開通,調(diào)試方便,提供示例代碼,告別漫長(zhǎng)開發(fā)周期,保障您業(yè)務(wù)的穩(wěn)定運(yùn)行,協(xié)助您擁有像淘寶一樣的物流能力,建立智能,安全的物流管理體系
|
在哪些場(chǎng)景會(huì)用到物流云的電商物流服務(wù)?
- 電商平臺(tái):電商平臺(tái)需要實(shí)時(shí)顯示物流狀態(tài),以便用戶隨時(shí)查看商品的運(yùn)輸狀態(tài)和預(yù)計(jì)到貨時(shí)間。這不僅提高了用戶體驗(yàn),也提升了平臺(tái)的透明度。通過電商物流云服務(wù)API接口,電商平臺(tái)可以與物流服務(wù)商實(shí)現(xiàn)無縫對(duì)接,實(shí)時(shí)獲取物流信息并展示給用戶。
- 第三方物流查詢服務(wù):一些獨(dú)立的第三方服務(wù)提供查詢?nèi)魏慰爝f公司的包裹狀態(tài)的服務(wù)。用戶只需輸入運(yùn)單號(hào),就能查詢到包裹的最新狀態(tài),無需關(guān)心包裹是由哪家快遞公司送達(dá)的。這些第三方服務(wù)通常使用電商物流云服務(wù)API接口,與多家快遞公司的物流信息進(jìn)行對(duì)接。
- 企業(yè)內(nèi)部物流管理系統(tǒng):大型企業(yè)通常擁有復(fù)雜的物流系統(tǒng),需要持續(xù)跟蹤物流信息以便在必要時(shí)進(jìn)行相應(yīng)的調(diào)整,如重新安排送貨車輛或更改倉庫存儲(chǔ)。通過電商物流云服務(wù)API接口,企業(yè)可以實(shí)時(shí)獲取物流信息,并據(jù)此進(jìn)行決策和調(diào)整。
- 供應(yīng)鏈系統(tǒng):在做采購、銷售等環(huán)節(jié)時(shí),知道物流信息對(duì)于公司來說非常重要,可以根據(jù)物流信息做合理的計(jì)劃和決策。電商物流云服務(wù)API接口為供應(yīng)鏈系統(tǒng)提供了實(shí)時(shí)、準(zhǔn)確的物流信息,幫助公司優(yōu)化供應(yīng)鏈管理和決策。
- 個(gè)性化購物助手:商家可以利用電商物流云服務(wù)API接口開發(fā)個(gè)性化購物助手應(yīng)用,根據(jù)用戶的購物歷史和偏好,推薦合適的商品和優(yōu)惠信息,提供比價(jià)和促銷提醒等功能。同時(shí),購物助手還可以實(shí)時(shí)跟蹤用戶購買的商品的物流狀態(tài),并提醒用戶預(yù)計(jì)到貨時(shí)間。
- 跨境電商解決方案:隨著跨境電商的興起,如何將不同國家的電商平臺(tái)進(jìn)行有效連接成為了一個(gè)挑戰(zhàn)。電商物流云服務(wù)API接口可以與其他國家的電商平臺(tái)API進(jìn)行對(duì)接,實(shí)現(xiàn)商品信息的同步更新和跨平臺(tái)管理,為跨境電商提供高效的解決方案,助力商家拓展國際市場(chǎng)。


電商物流服務(wù)接口規(guī)范說明
秘鑰信息查看方式
注冊(cè)賬號(hào)后,登錄后臺(tái)管理系統(tǒng)查看 AppId 和 AppSecret
報(bào)文及報(bào)文編碼
報(bào)文格式:JSON
Content-Type:application/x-www-form-urlencoded;charset=utf-8
接口數(shù)據(jù)包結(jié)構(gòu)
請(qǐng)求頭入?yún)⑹纠龍D
請(qǐng)求報(bào)文入?yún)⑹纠龍D
請(qǐng)求示例
以訂閱接口為例展示一串完整的請(qǐng)求報(bào)文
{
"requestData": {
"cpCode": "STO",
"mailNo": "43320782358888",
"pushType": "1",
"receiverAddress": {
"address": "測(cè)試"
},
"receiverTel": "18888888888",
"subCallBackParam": "2222"
},
"appid": "您的appid",
"sign": "2a41271d67a81a6ba4e0c146adxxxx"
}
為方便展示, 報(bào)文做了格式化處理, 實(shí)際請(qǐng)求時(shí) 請(qǐng)自行壓縮JSON (去掉空格、換行和\等),逗號(hào)、引號(hào) 均使用英文格式
系統(tǒng)級(jí)參數(shù)
所有接口統(tǒng)一使用此系統(tǒng)級(jí)參數(shù)
名稱 |
類型 |
是否必須 |
描述 |
appid |
String |
是 |
您的appid |
sign |
String |
是 |
簽名 |
簽名說明
系統(tǒng)級(jí)字段:sign(數(shù)據(jù)內(nèi)容簽名)
用于傳輸數(shù)據(jù)加密和校驗(yàn)用戶身份
簽名步驟
S1. 先獲取秘鑰appSecret
由接口方提供
S2. 把密鑰appSecret拼接加到requestData參數(shù)后面
示例參數(shù):
appSecret = test3as9dj1kj08488c49b69ead19339
requestData = {"cpCode":"JITSD","mailNo":"JT888888888"}
算法:
requestData+appSecret
{"cpCode":"JITSD","mailNo":"JT888888888"}test3as9dj1kj08488c49b69ead19339
S3. md5加密,編碼utf-8
79603da5f7aa33d5a1ae6ac9e161b2da
相關(guān)工具Code
getSign(JAVA)
/**
* 進(jìn)行加簽
*
* @param appSecret 用戶的appSecret
* @param requestData json入?yún)? * @return 處理后,返回的簽名值
*/
public static String getSign(String appSecret, String requestData) {
String signValue = requestData + appSecret;//按順序?qū)?shù)拼接起來 如:requestData+appSecret
System.out.println("原參數(shù)拼接:" + signValue);
String md5SignValue = MD5Utils.MD5Encode(signValue, "utf8");//形成MD5加密后的簽名
System.out.println("MD5加密:" + md5SignValue);
return md5SignValue;
}
MD5Utils(JAVA)
/**
* MD5
*/
public class MD5Utils {
private static final String hexDigIts[] = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
/**
* MD5加密
* @param origin 字符
* @param charsetname 編碼
* @return
*/
public static String MD5Encode(String origin, String charsetname){
String resultString = null;
try{
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
if(null == charsetname || "".equals(charsetname)){
resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
}else{
resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
}
}catch (Exception e){
}
return resultString;
}
public static String byteArrayToHexString(byte b[]){
StringBuffer resultSb = new StringBuffer();
for(int i = 0; i < b.length; i++){
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
public static String byteToHexString(byte b){
int n = b;
if(n < 0){
n += 256;
}
int d1 = n / 16;
int d2 = n % 16;
return hexDigIts[d1] + hexDigIts[d2];
}
}
相關(guān)Demo示例
加簽(JAVA)
public static void main(String[] args) {
String appSecret = "test3as9dj1kj08488c49b69ead19339"; //替換你的appSecret
String requestData = "{\"cpCode\":\"JITSD\",\"mailNo\":\"JT888888888\"}";
String sign = getSign(appSecret, requestData);
System.out.println("sign:" + sign);//sign:79603da5f7aa33d5a1ae6ac9e161b2da
}
物流信息訂閱接口(JAVA)
import org.apache.http.HttpResponse;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SubDemoUtil {
public static void main(String[] args) {
String url = "https://express.xuanquetech.com/express/v2/subscribeExpressRoutes";//請(qǐng)求路徑
//請(qǐng)求頭
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
//組裝參數(shù)
String requestData = "{\"cpCode\":\"JITSD\",\"mailNo\":\"JT88888888\",\"pushType\":\"1\",\"receiverAddress\":{\"address\":\"測(cè)試地址\"},\"receiverTel\":\"13590860188\"}";
Map<String, String> params = new HashMap();
params.put("appid", "您的appid");//您的appid
params.put("sign", "xxx");//簽名
params.put("requestData", requestData);//訂閱接口入?yún)⒆侄? String resultData = httpPostWithForm(url, params, headers);// 發(fā)送post請(qǐng)求并接收返回結(jié)果
System.out.println(resultData);//訂閱成功示例:{"success":true,"errorCode":null,"errorMsg":null}
}
/**
* 以form表單形式提交數(shù)據(jù),發(fā)送post請(qǐng)求
*
* @param url
* @param params
* @param headers
* @return
*/
public static String httpPostWithForm(String url, Map<String, String> params, Map<String, String> headers) {
// 用于接收返回的結(jié)果
String resultData = "";
try {
HttpPost post = new HttpPost(url);
//設(shè)置頭部信息
if (headers != null && !headers.isEmpty()) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
post.setHeader(entry.getKey(), entry.getValue());
}
}
List<BasicNameValuePair> pairList = new ArrayList<>();
for (String key : params.keySet()) {
pairList.add(new BasicNameValuePair(key, params.get(key)));
}
UrlEncodedFormEntity uefe = new UrlEncodedFormEntity(pairList, "utf-8");
post.setEntity(uefe);
// 創(chuàng)建一個(gè)http客戶端
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
// 發(fā)送post請(qǐng)求
HttpResponse response = httpClient.execute(post);
resultData = EntityUtils.toString(response.getEntity(), "UTF-8");// 返回正常數(shù)據(jù)
} catch (Exception e) {
System.out.println("接口連接失敗 e:" + e);
}
return resultData;
}
}
收到請(qǐng)求后,以同樣的算法進(jìn)行簽名,對(duì)比兩者是否相同。如不同,說明傳遞過程中發(fā)生數(shù)據(jù)篡改。
返回請(qǐng)求失敗:
{
success":false,
errorCode":"400"
errorMsg":"接口校驗(yàn)失敗,請(qǐng)檢査sign是否正確
}
詳情查看鏈接:https://www.yuque.com/u34567120/gk2t1c/uexegonq46l34g7v




我們是一家成立于2021年2月18日的公司,位于江蘇省蘇州市昆山市巴城鎮(zhèn)學(xué)院路88號(hào)。以從事研究和試驗(yàn)發(fā)展為主的企業(yè),主要經(jīng)營范圍涵蓋大數(shù)據(jù)服務(wù)、計(jì)算機(jī)系統(tǒng)服務(wù)、工程和技術(shù)研究和試驗(yàn)發(fā)展、信息技術(shù)咨詢服務(wù)、信息系統(tǒng)集成服務(wù)、數(shù)據(jù)處理和存儲(chǔ)支持服務(wù)、軟件開發(fā)、人工智能基礎(chǔ)軟件開發(fā)、人工智能應(yīng)用軟件開發(fā)、人工智能公共數(shù)據(jù)平臺(tái)、人工智能行業(yè)應(yīng)用系統(tǒng)集成服務(wù)等領(lǐng)域。
物流合作服務(wù)商


電商物流服務(wù)接口規(guī)范說明
秘鑰信息查看方式
注冊(cè)賬號(hào)后,登錄后臺(tái)管理系統(tǒng)查看 AppId 和 AppSecret
報(bào)文及報(bào)文編碼
報(bào)文格式:JSON
Content-Type:application/x-www-form-urlencoded;charset=utf-8
接口數(shù)據(jù)包結(jié)構(gòu)
請(qǐng)求頭入?yún)⑹纠龍D
請(qǐng)求報(bào)文入?yún)⑹纠龍D
請(qǐng)求示例
以訂閱接口為例展示一串完整的請(qǐng)求報(bào)文
{
"requestData": {
"cpCode": "STO",
"mailNo": "43320782358888",
"pushType": "1",
"receiverAddress": {
"address": "測(cè)試"
},
"receiverTel": "18888888888",
"subCallBackParam": "2222"
},
"appid": "您的appid",
"sign": "2a41271d67a81a6ba4e0c146adxxxx"
}
為方便展示, 報(bào)文做了格式化處理, 實(shí)際請(qǐng)求時(shí) 請(qǐng)自行壓縮JSON (去掉空格、換行和\等),逗號(hào)、引號(hào) 均使用英文格式
系統(tǒng)級(jí)參數(shù)
所有接口統(tǒng)一使用此系統(tǒng)級(jí)參數(shù)
名稱 |
類型 |
是否必須 |
描述 |
appid |
String |
是 |
您的appid |
sign |
String |
是 |
簽名 |
簽名說明
系統(tǒng)級(jí)字段:sign(數(shù)據(jù)內(nèi)容簽名)
用于傳輸數(shù)據(jù)加密和校驗(yàn)用戶身份
簽名步驟
S1. 先獲取秘鑰appSecret
由接口方提供
S2. 把密鑰appSecret拼接加到requestData參數(shù)后面
示例參數(shù):
appSecret = test3as9dj1kj08488c49b69ead19339
requestData = {"cpCode":"JITSD","mailNo":"JT888888888"}
算法:
requestData+appSecret
{"cpCode":"JITSD","mailNo":"JT888888888"}test3as9dj1kj08488c49b69ead19339
S3. md5加密,編碼utf-8
79603da5f7aa33d5a1ae6ac9e161b2da
相關(guān)工具Code
getSign(JAVA)
/**
* 進(jìn)行加簽
*
* @param appSecret 用戶的appSecret
* @param requestData json入?yún)? * @return 處理后,返回的簽名值
*/
public static String getSign(String appSecret, String requestData) {
String signValue = requestData + appSecret;//按順序?qū)?shù)拼接起來 如:requestData+appSecret
System.out.println("原參數(shù)拼接:" + signValue);
String md5SignValue = MD5Utils.MD5Encode(signValue, "utf8");//形成MD5加密后的簽名
System.out.println("MD5加密:" + md5SignValue);
return md5SignValue;
}
MD5Utils(JAVA)
/**
* MD5
*/
public class MD5Utils {
private static final String hexDigIts[] = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
/**
* MD5加密
* @param origin 字符
* @param charsetname 編碼
* @return
*/
public static String MD5Encode(String origin, String charsetname){
String resultString = null;
try{
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
if(null == charsetname || "".equals(charsetname)){
resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
}else{
resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
}
}catch (Exception e){
}
return resultString;
}
public static String byteArrayToHexString(byte b[]){
StringBuffer resultSb = new StringBuffer();
for(int i = 0; i < b.length; i++){
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
public static String byteToHexString(byte b){
int n = b;
if(n < 0){
n += 256;
}
int d1 = n / 16;
int d2 = n % 16;
return hexDigIts[d1] + hexDigIts[d2];
}
}
相關(guān)Demo示例
加簽(JAVA)
public static void main(String[] args) {
String appSecret = "test3as9dj1kj08488c49b69ead19339"; //替換你的appSecret
String requestData = "{\"cpCode\":\"JITSD\",\"mailNo\":\"JT888888888\"}";
String sign = getSign(appSecret, requestData);
System.out.println("sign:" + sign);//sign:79603da5f7aa33d5a1ae6ac9e161b2da
}
物流信息訂閱接口(JAVA)
import org.apache.http.HttpResponse;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SubDemoUtil {
public static void main(String[] args) {
String url = "https://express.xuanquetech.com/express/v2/subscribeExpressRoutes";//請(qǐng)求路徑
//請(qǐng)求頭
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
//組裝參數(shù)
String requestData = "{\"cpCode\":\"JITSD\",\"mailNo\":\"JT88888888\",\"pushType\":\"1\",\"receiverAddress\":{\"address\":\"測(cè)試地址\"},\"receiverTel\":\"13590860188\"}";
Map<String, String> params = new HashMap();
params.put("appid", "您的appid");//您的appid
params.put("sign", "xxx");//簽名
params.put("requestData", requestData);//訂閱接口入?yún)⒆侄? String resultData = httpPostWithForm(url, params, headers);// 發(fā)送post請(qǐng)求并接收返回結(jié)果
System.out.println(resultData);//訂閱成功示例:{"success":true,"errorCode":null,"errorMsg":null}
}
/**
* 以form表單形式提交數(shù)據(jù),發(fā)送post請(qǐng)求
*
* @param url
* @param params
* @param headers
* @return
*/
public static String httpPostWithForm(String url, Map<String, String> params, Map<String, String> headers) {
// 用于接收返回的結(jié)果
String resultData = "";
try {
HttpPost post = new HttpPost(url);
//設(shè)置頭部信息
if (headers != null && !headers.isEmpty()) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
post.setHeader(entry.getKey(), entry.getValue());
}
}
List<BasicNameValuePair> pairList = new ArrayList<>();
for (String key : params.keySet()) {
pairList.add(new BasicNameValuePair(key, params.get(key)));
}
UrlEncodedFormEntity uefe = new UrlEncodedFormEntity(pairList, "utf-8");
post.setEntity(uefe);
// 創(chuàng)建一個(gè)http客戶端
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
// 發(fā)送post請(qǐng)求
HttpResponse response = httpClient.execute(post);
resultData = EntityUtils.toString(response.getEntity(), "UTF-8");// 返回正常數(shù)據(jù)
} catch (Exception e) {
System.out.println("接口連接失敗 e:" + e);
}
return resultData;
}
}
收到請(qǐng)求后,以同樣的算法進(jìn)行簽名,對(duì)比兩者是否相同。如不同,說明傳遞過程中發(fā)生數(shù)據(jù)篡改。
返回請(qǐng)求失敗:
{
success":false,
errorCode":"400"
errorMsg":"接口校驗(yàn)失敗,請(qǐng)檢査sign是否正確
}
詳情查看鏈接:https://www.yuque.com/u34567120/gk2t1c/uexegonq46l34g7v






我們是一家成立于2021年2月18日的公司,位于江蘇省蘇州市昆山市巴城鎮(zhèn)學(xué)院路88號(hào)。以從事研究和試驗(yàn)發(fā)展為主的企業(yè),主要經(jīng)營范圍涵蓋大數(shù)據(jù)服務(wù)、計(jì)算機(jī)系統(tǒng)服務(wù)、工程和技術(shù)研究和試驗(yàn)發(fā)展、信息技術(shù)咨詢服務(wù)、信息系統(tǒng)集成服務(wù)、數(shù)據(jù)處理和存儲(chǔ)支持服務(wù)、軟件開發(fā)、人工智能基礎(chǔ)軟件開發(fā)、人工智能應(yīng)用軟件開發(fā)、人工智能公共數(shù)據(jù)平臺(tái)、人工智能行業(yè)應(yīng)用系統(tǒng)集成服務(wù)等領(lǐng)域。
物流合作服務(wù)商

