宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產品動態(tài)
精選推薦

主流電商平臺接口的設計思路與接入

管理 管理 編輯 刪除

最近對接的開放平臺有點多,像淘寶、京東、快手、抖音等電商平臺的開放平臺基本對接了個遍,什么是CRUD BODY也許就是這樣的吧?。?!

雖然對接各大開放平臺沒啥技術含量,但咱也得學點東西不是,不能白對接哈!下面分享主流電商平臺開放訂單API接口的接入:

b1fbe20250423110451147.png

經過這幾天的整理,腦子里大概有了個開放平臺接口的設計套路,故整理成文章方便有需要的時間去實現自己的開放平臺接口。

開放平臺比較關注的幾個點:

? 易用性:接口設計要簡潔,請求參數要見名知意,使服務商能快速接收,為用戶提供服務

? 安全性:開放平臺接口是暴露在外網,必須保證用戶數據的安全

? 穩(wěn)定性:開放平臺接口是給上游的服務商使用,必須保證穩(wěn)定為服務商應用提供服務

dc190202504231105356667.png

? ... 服務商應用

開放平臺可以分為幾大部分:

1. 接入指南:幫助服務商接入開放平臺

2. 接口文檔:幫助服務商的開發(fā)人員,實現業(yè)務功能

3. 應用:服務商應用在開放平臺的身份標示 服務商接入開放平臺的首要步驟就是創(chuàng)建應用,有了服務商應用平臺內部就能辨別服務商的身份,這樣就能很方便的做限流、權限控制等。 基本屬性 服務商應用一般有appid、appsecret、授權回調地址這三個基本的屬性:

? appid: 服務商應用的唯一標識

? appsecret:服務商應用的密鑰簽名、驗證身份時用到

? 授權回調地址:授權時會用到 授權認證 授權不是開放平臺對服務商應用的授權 ,而是需要開放平臺的客戶(用戶)對服務商應用的授予,比如ERP應用,也就是淘寶的店鋪商家對應用進行授權,使其能夠拉取到店鋪的訂單來完成訂單履約。

淘寶授權頁 所以授權需要三個角色才能完成:

? 開放平臺

■ 提供授權頁面,引導客戶完成服務商應用的授權

■ 客戶完成授權后,跳轉到服務商應用提供的授權回調地址同時帶上授權信息

? 客戶:在開放平臺提供的授權頁面中,完成對服務商應用的授權

? 服務商應用:接收開放平臺回調的授權信息,完成務商應用與客戶的綁定關系、保存授權信息 當然也可以使用appid + appsecret 直接認證服務商應用的身份,這種適合沒有第三方的時候,數據都是屬于開放平臺的,跟客戶沒有半點關系,也就不存在需要客戶授權的問題。 OAuth2授權機制 OAuth2是一套授權標準,現在互聯網做授權基本都用它,如github登陸 、微信公眾號授權等都是基于OAuth2的應用。

授權流程

請求參數 請求參數分兩類:系統(tǒng)參數、業(yè)務參數:

? 系統(tǒng)參數:每次API調用都必需攜帶的參數

? 業(yè)務參數:開放平臺根據不同的業(yè)務,提供的參數。

業(yè)務參數根據業(yè)務來定,先說系統(tǒng)參數一般包含:

? appid:服務商應用唯一標識

? appsecret: 服務商應用密鑰

? timestamp:時間戳

? sign:請求簽名

系統(tǒng)參數使用url參數傳遞 業(yè)務參數 業(yè)務參數是調用開放平臺接口時傳遞的請求參數,如一次訂單查詢接口,要實現按訂單狀態(tài)的維度查詢訂單,那么訂單查詢接口就需要接收status參數,然后去查庫后返回訂單數據。 業(yè)務參數的載體,常用的如:application/json、application/x-www-form-urlencode等。 業(yè)務參數使用post請求參數的方式傳遞,同時也需要參與簽名,后面說簽名會提到 請求簽名 對請求簽名的目的就是防止數據被篡改,常見的md5、sha都可以用來做為簽名算法,理論上只要保證雙方能夠生成簽名和驗簽就行,像支付寶這類高安全級別的應用就是使用的非對稱加密,雙方各生成一對私鑰和公鑰,然后交換公鑰用于驗簽即可。 生成簽名的方式自行定義,這里列舉一個常見的簽名生成方式: sign = appsecret + appid + timestamp + 業(yè)務參數(排序后) + appsecret 偽代碼

String appid = "abcd";
String appsecret = "12345";
Long timestamp = 948758686
//有序map,按key的值排序
Map<String, Object> requestBody = new TreeMap<>();
requestBody.put("a", 1);
requestBody.put("b",21);
requestBody.put("c", 2);
//轉換成json字符串
String jsonBody = JSON.toJSONString(requestBody);
String sign = DigestUtils.md5hex(appsecret + appid + timestamp + jsonBody + appsecret);
驗簽 驗簽步驟與生成簽名的步驟類似,仿代碼如下:
# 封裝好API供應商demo url=o0b.cn/ibrad, wechat id: TaoxiJd
String appid = request.getParameter("appid");
String appsecret = request.getParameter("appsecret");
Long timestamp = request.getParameter("timestamp");
//拿出請求的業(yè)務參數,轉成TreeMap
Map<String, Object> requestBody = new TreeMap<>(JSON.parseObject("post請求參數"));
//轉換成json字符串
String jsonBody = JSON.toJSONString(requestBody);
String sign = DigestUtils.md5hex(appsecret + appid + timestamp + jsonBody + appsecret);
String originSign = request.getParameter("sign");
if(Objects.equals(sign ,originSign )){
//驗證簽名成功
}else{
//驗證簽名失敗
}

總結 以上就是開放平臺接口設計的一些思路,其實也是對接開放平臺多了, 對那些開放平臺對接的一些基本的套路的一些整理,希望有朝一日能用上。 對接開放平臺的時候遇到的問題不少,有的平臺有SDK有的是直接是restapi,有SDK的平臺對接起來還是挺幸福的,下期給大家整個平臺SDK的設計。

請登錄后查看

各大電商API接口——> Brad19970108118 最后編輯于2025-04-23 11:07:41

快捷回復
回復
回復
回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
排序 默認正序 回復倒序 點贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復' : '回復'}}
刪除
回復
回復

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復' : '回復'}}
刪除
回復
回復
查看更多
打賞
已打賞¥{{reward_price}}
341
{{like_count}}
{{collect_count}}
添加回復 ({{post_count}})

相關推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復
回復
問題:
問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內的數值
打賞成功
¥{{price}}
完成 確認打賞

微信登錄/注冊

切換手機號登錄

{{ bind_phone ? '綁定手機' : '手機登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服