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

全部
常見問(wèn)題
產(chǎn)品動(dòng)態(tài)
精選推薦

主流電商平臺(tái)接口的設(shè)計(jì)思路與接入

管理 管理 編輯 刪除

最近對(duì)接的開放平臺(tái)有點(diǎn)多,像淘寶、京東、快手、抖音等電商平臺(tái)的開放平臺(tái)基本對(duì)接了個(gè)遍,什么是CRUD BODY也許就是這樣的吧?。?!

雖然對(duì)接各大開放平臺(tái)沒(méi)啥技術(shù)含量,但咱也得學(xué)點(diǎn)東西不是,不能白對(duì)接哈!下面分享主流電商平臺(tái)開放訂單API接口的接入:

b1fbe20250423110451147.png

經(jīng)過(guò)這幾天的整理,腦子里大概有了個(gè)開放平臺(tái)接口的設(shè)計(jì)套路,故整理成文章方便有需要的時(shí)間去實(shí)現(xiàn)自己的開放平臺(tái)接口。

開放平臺(tái)比較關(guān)注的幾個(gè)點(diǎn):

? 易用性:接口設(shè)計(jì)要簡(jiǎn)潔,請(qǐng)求參數(shù)要見名知意,使服務(wù)商能快速接收,為用戶提供服務(wù)

? 安全性:開放平臺(tái)接口是暴露在外網(wǎng),必須保證用戶數(shù)據(jù)的安全

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

dc190202504231105356667.png

? ... 服務(wù)商應(yīng)用

開放平臺(tái)可以分為幾大部分:

1. 接入指南:幫助服務(wù)商接入開放平臺(tái)

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

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

? appid: 服務(wù)商應(yīng)用的唯一標(biāo)識(shí)

? appsecret:服務(wù)商應(yīng)用的密鑰簽名、驗(yàn)證身份時(shí)用到

? 授權(quán)回調(diào)地址:授權(quán)時(shí)會(huì)用到 授權(quán)認(rèn)證 授權(quán)不是開放平臺(tái)對(duì)服務(wù)商應(yīng)用的授權(quán) ,而是需要開放平臺(tái)的客戶(用戶)對(duì)服務(wù)商應(yīng)用的授予,比如ERP應(yīng)用,也就是淘寶的店鋪商家對(duì)應(yīng)用進(jìn)行授權(quán),使其能夠拉取到店鋪的訂單來(lái)完成訂單履約。

淘寶授權(quán)頁(yè) 所以授權(quán)需要三個(gè)角色才能完成:

? 開放平臺(tái)

■ 提供授權(quán)頁(yè)面,引導(dǎo)客戶完成服務(wù)商應(yīng)用的授權(quán)

■ 客戶完成授權(quán)后,跳轉(zhuǎn)到服務(wù)商應(yīng)用提供的授權(quán)回調(diào)地址同時(shí)帶上授權(quán)信息

? 客戶:在開放平臺(tái)提供的授權(quán)頁(yè)面中,完成對(duì)服務(wù)商應(yīng)用的授權(quán)

? 服務(wù)商應(yīng)用:接收開放平臺(tái)回調(diào)的授權(quán)信息,完成務(wù)商應(yīng)用與客戶的綁定關(guān)系、保存授權(quán)信息 當(dāng)然也可以使用appid + appsecret 直接認(rèn)證服務(wù)商應(yīng)用的身份,這種適合沒(méi)有第三方的時(shí)候,數(shù)據(jù)都是屬于開放平臺(tái)的,跟客戶沒(méi)有半點(diǎn)關(guān)系,也就不存在需要客戶授權(quán)的問(wèn)題。 OAuth2授權(quán)機(jī)制 OAuth2是一套授權(quán)標(biāo)準(zhǔn),現(xiàn)在互聯(lián)網(wǎng)做授權(quán)基本都用它,如github登陸 、微信公眾號(hào)授權(quán)等都是基于OAuth2的應(yīng)用。

授權(quán)流程

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

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

? 業(yè)務(wù)參數(shù):開放平臺(tái)根據(jù)不同的業(yè)務(wù),提供的參數(shù)。

業(yè)務(wù)參數(shù)根據(jù)業(yè)務(wù)來(lái)定,先說(shuō)系統(tǒng)參數(shù)一般包含:

? appid:服務(wù)商應(yīng)用唯一標(biāo)識(shí)

? appsecret: 服務(wù)商應(yīng)用密鑰

? timestamp:時(shí)間戳

? sign:請(qǐng)求簽名

系統(tǒng)參數(shù)使用url參數(shù)傳遞 業(yè)務(wù)參數(shù) 業(yè)務(wù)參數(shù)是調(diào)用開放平臺(tái)接口時(shí)傳遞的請(qǐng)求參數(shù),如一次訂單查詢接口,要實(shí)現(xiàn)按訂單狀態(tài)的維度查詢訂單,那么訂單查詢接口就需要接收status參數(shù),然后去查庫(kù)后返回訂單數(shù)據(jù)。 業(yè)務(wù)參數(shù)的載體,常用的如:application/json、application/x-www-form-urlencode等。 業(yè)務(wù)參數(shù)使用post請(qǐng)求參數(shù)的方式傳遞,同時(shí)也需要參與簽名,后面說(shuō)簽名會(huì)提到 請(qǐng)求簽名 對(duì)請(qǐng)求簽名的目的就是防止數(shù)據(jù)被篡改,常見的md5、sha都可以用來(lái)做為簽名算法,理論上只要保證雙方能夠生成簽名和驗(yàn)簽就行,像支付寶這類高安全級(jí)別的應(yīng)用就是使用的非對(duì)稱加密,雙方各生成一對(duì)私鑰和公鑰,然后交換公鑰用于驗(yàn)簽即可。 生成簽名的方式自行定義,這里列舉一個(gè)常見的簽名生成方式: sign = appsecret + appid + timestamp + 業(yè)務(wù)參數(shù)(排序后) + 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);
//轉(zhuǎn)換成json字符串
String jsonBody = JSON.toJSONString(requestBody);
String sign = DigestUtils.md5hex(appsecret + appid + timestamp + jsonBody + appsecret);
驗(yàn)簽 驗(yàn)簽步驟與生成簽名的步驟類似,仿代碼如下:
# 封裝好API供應(yīng)商demo url=o0b.cn/ibrad, wechat id: TaoxiJd
String appid = request.getParameter("appid");
String appsecret = request.getParameter("appsecret");
Long timestamp = request.getParameter("timestamp");
//拿出請(qǐng)求的業(yè)務(wù)參數(shù),轉(zhuǎn)成TreeMap
Map<String, Object> requestBody = new TreeMap<>(JSON.parseObject("post請(qǐng)求參數(shù)"));
//轉(zhuǎn)換成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 )){
//驗(yàn)證簽名成功
}else{
//驗(yàn)證簽名失敗
}

總結(jié) 以上就是開放平臺(tái)接口設(shè)計(jì)的一些思路,其實(shí)也是對(duì)接開放平臺(tái)多了, 對(duì)那些開放平臺(tái)對(duì)接的一些基本的套路的一些整理,希望有朝一日能用上。 對(duì)接開放平臺(tái)的時(shí)候遇到的問(wèn)題不少,有的平臺(tái)有SDK有的是直接是restapi,有SDK的平臺(tái)對(duì)接起來(lái)還是挺幸福的,下期給大家整個(gè)平臺(tái)SDK的設(shè)計(jì)。

請(qǐng)登錄后查看

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

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{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 || '暫無(wú)簡(jiǎn)介'}}
附件

{{itemf.name}}

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

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

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

相關(guān)推薦

快速安全登錄

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

微信登錄/注冊(cè)

切換手機(jī)號(hào)登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

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

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

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