99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

企業(yè)級(jí)定制電商API模塊化設(shè)計(jì):從按需對(duì)接到防坑實(shí)操

企業(yè)級(jí)定制電商API模塊化設(shè)計(jì):從按需對(duì)接到防坑實(shí)操 做企業(yè)級(jí)定制電商API的這幾年我最大的感受是客戶的業(yè)務(wù)場(chǎng)景永遠(yuǎn)比你想象的復(fù)雜。一個(gè)醫(yī)藥連鎖的訂單可能帶處方校驗(yàn)一個(gè)生鮮平臺(tái)要求按批次鎖庫(kù)存一個(gè)跨境電商賣家要同時(shí)對(duì)接拼多多和抖音的訂單推送。如果API層不做好按需對(duì)接的模塊化設(shè)計(jì)后面每一項(xiàng)定制都會(huì)變成在原始接口上打補(bǔ)丁最后連自己都繞暈。這篇文章不是什么教科書而是我從真實(shí)交付項(xiàng)目里整理出來的實(shí)操經(jīng)驗(yàn)講清楚定制電商API怎么做模塊劃分、怎么對(duì)接才不踩坑內(nèi)容適合正在做企業(yè)級(jí)電商系統(tǒng)集成的開發(fā)、架構(gòu)師以及準(zhǔn)備把自研系統(tǒng)接到電商平臺(tái)上的技術(shù)負(fù)責(zé)人。核心就一個(gè)觀點(diǎn)真正的競(jìng)爭(zhēng)力不在“全”而在“按需”。1. 項(xiàng)目定位與模塊化設(shè)計(jì)思路1.1 為什么企業(yè)級(jí)電商必須走“模塊化按需對(duì)接”這條路企業(yè)級(jí)定制電商和ToC電商App有一個(gè)本質(zhì)區(qū)別ToC產(chǎn)品是“我做一套系統(tǒng)成千上萬人用同一套”而企業(yè)級(jí)項(xiàng)目是“每一家客戶的內(nèi)部系統(tǒng)都不一樣”??蛻舻腅RP可能是SAP、用友、金蝶WMS可能是自研也可能是買了某家倉(cāng)儲(chǔ)系統(tǒng)的標(biāo)準(zhǔn)版CRM有的用Salesforce有的用本地部署的客戶管理系統(tǒng)。如果我只提供一套固定的大而全API客戶接起來會(huì)非常痛苦——他不需要的功能也得跟著適配他已有的業(yè)務(wù)規(guī)則還得反過來遷就我的數(shù)據(jù)結(jié)構(gòu)。所以我在做這類項(xiàng)目時(shí)第一件事不是寫接口而是畫模塊邊界。把電商業(yè)務(wù)切成商品、庫(kù)存、訂單、支付、物流、營(yíng)銷、會(huì)員、售后、報(bào)表這九大域每個(gè)域獨(dú)立成模塊模塊之間通過事件回調(diào)或者批量任務(wù)協(xié)作而不是互相硬調(diào)用??蛻糁恍枰錾唐飞霞芄芾砭椭婚_商品模塊要做全鏈路交易就把訂單、庫(kù)存、支付三個(gè)模塊一起開通。這樣單個(gè)客戶的對(duì)接周期能從幾周壓到幾天運(yùn)維同學(xué)也不會(huì)被一套“全家桶”拖垮。這個(gè)思路落地有一個(gè)前提模塊接口的契約必須穩(wěn)定。模塊可以按需接但接口一旦發(fā)布字段的增刪改必須走版本號(hào)迭代不能在原接口上直接改字段含義。我在早期項(xiàng)目里就吃過這個(gè)虧——當(dāng)時(shí)圖省事直接改了一個(gè)商品接口里某個(gè)狀態(tài)字段的可選值結(jié)果有個(gè)客戶凌晨促銷時(shí)數(shù)據(jù)全部對(duì)不上那一晚上復(fù)盤會(huì)開得極其痛苦。從那以后所有對(duì)外API一律帶版本號(hào)契約變更必須走發(fā)布評(píng)審誰也別想繞過。1.2 整體架構(gòu)與模塊邊界劃分把這九大域落到項(xiàng)目里我用一張模塊清單來約束需求邊界這也方便和客戶在項(xiàng)目啟動(dòng)初期就定清楚“哪些模塊包含在本次范圍內(nèi)”。業(yè)務(wù)域核心職責(zé)典型接口數(shù)主要依賴關(guān)系商品域類目、SPU/SKU、價(jià)格、上下架15依賴組織架構(gòu)域的員工權(quán)限庫(kù)存域?qū)崟r(shí)庫(kù)存、預(yù)占、批次、出入庫(kù)10依賴商品域的SKU編碼約定訂單域下單、查詢、取消、改價(jià)、拆合單12訂閱庫(kù)存域和支付域事件支付域支付單、退款、對(duì)賬、分賬8依賴訂單域的訂單號(hào)約束物流域發(fā)貨、軌跡、面單、簽收10依賴訂單域和庫(kù)存域營(yíng)銷域優(yōu)惠券、滿減、秒殺、拼團(tuán)9依賴商品域和訂單域會(huì)員域等級(jí)、積分、儲(chǔ)值、標(biāo)簽7依賴訂單域做消費(fèi)統(tǒng)計(jì)售后域退貨、換貨、退款審核8依賴訂單域和庫(kù)存域報(bào)表域銷售統(tǒng)計(jì)、庫(kù)存報(bào)表、結(jié)算單6依賴全量業(yè)務(wù)事件采集模塊之間不共享數(shù)據(jù)庫(kù)表只通過事件通信。比如庫(kù)存模塊的扣減通知發(fā)出去訂單模塊只需要關(guān)心“扣減成功”這個(gè)結(jié)果不需要知道庫(kù)存表長(zhǎng)什么樣。每個(gè)模塊獨(dú)立部署、獨(dú)立擴(kuò)容也意味著客戶停用某個(gè)模塊不會(huì)影響其他模塊運(yùn)行。我之前遇到過一個(gè)客戶只買了商品、訂單、物流三個(gè)模塊沒買支付模塊因?yàn)樗麄兊腻X是從線下門店過賬的。如果當(dāng)時(shí)強(qiáng)推全量API這單生意大概率談不下來。按需選配讓項(xiàng)目邊界清晰也讓報(bào)價(jià)簡(jiǎn)單——按模塊數(shù)和服務(wù)量級(jí)來算客戶容易理解我們也不用為不用的代碼背維護(hù)成本。2. 核心業(yè)務(wù)模塊拆解與對(duì)接細(xì)節(jié)2.1 商品與類目模塊同步是門學(xué)問商品模塊往往是整個(gè)項(xiàng)目的第一個(gè)觸點(diǎn)因?yàn)椴还苁墙灰?、?kù)存還是報(bào)表最終都要落到“賣的是什么”上。商品模塊的核心接口包括類目樹查詢、商品創(chuàng)建、商品更新、上下架、詳情查詢、SKU維度庫(kù)存查詢。聽起來都是CRUD但真正做起來全是細(xì)節(jié)。第一個(gè)細(xì)節(jié)是字段映射??蛻舻腅RP里商品編碼、價(jià)格、條碼字段命名五花八門我見過最夸張的客戶一個(gè)商品擴(kuò)展字段里塞了十幾項(xiàng)自定義屬性。正規(guī)做法是提供一個(gè)可配置的字段映射表用JSON描述“客戶字段 → 平臺(tái)字段”的轉(zhuǎn)換規(guī)則。比如客戶的spuNo映射到平臺(tái)的outer_id客戶的marketPrice映射到平臺(tái)的original_price。這樣客戶有內(nèi)部字段命名習(xí)慣不需要因?yàn)榻尤階PI而翻天覆地改自己的主數(shù)據(jù)。{ field_mapping: { customer_sku_id: outer_sku_id, customer_barcode: barcode, customer_price: sale_price, customer_cost: cost_price }, default_values: { status: on_sale, tax_rate: 0.13 } }第二個(gè)細(xì)節(jié)是批量同步的閾值。商品批量創(chuàng)建接口不是無限制的我們一般限制單次最多100個(gè)SKU超過則需要分批。這個(gè)限制不是我們故意刁難客戶而是避免單次請(qǐng)求體太大導(dǎo)致網(wǎng)關(guān)層直接拒絕。我之前遇到過客戶一次性傳了5000個(gè)SKU的Excel解析結(jié)果直接把請(qǐng)求體打到接近100MB網(wǎng)關(guān)直接拋了400。后來我們不僅限了批量大小還在文檔里明確寫了分頁游標(biāo)參數(shù)怎么用這類問題才基本消失。第三個(gè)細(xì)節(jié)是富文本清洗。商品的圖文詳情頁很多客戶會(huì)從Word里直接粘貼過來里面帶著大量?jī)?nèi)聯(lián)樣式、冗余標(biāo)簽甚至還有僅在他們局域網(wǎng)內(nèi)可見的圖片鏈接。同步到線上詳情頁后要么樣式錯(cuò)亂要么圖片紅叉。我們后來在商品模塊里內(nèi)置了一個(gè)簡(jiǎn)單的富文本清洗過濾允許通過的標(biāo)簽白名單把腳本和危險(xiǎn)標(biāo)簽一律剔除這也在很大程度上避免了后續(xù)的內(nèi)容安全問題。2.2 訂單與庫(kù)存模塊兩個(gè)必須聯(lián)動(dòng)的“兄弟”訂單域和庫(kù)存域是整個(gè)電商系統(tǒng)的核心聯(lián)動(dòng)區(qū)也是問題最多的地方。訂單域核心接口是下單、訂單查詢、訂單取消、訂單發(fā)貨、售后申請(qǐng)。庫(kù)存域核心接口是庫(kù)存查詢、庫(kù)存預(yù)占、預(yù)占釋放、庫(kù)存扣減、入庫(kù)單同步。最關(guān)鍵的機(jī)制是庫(kù)存預(yù)占。用戶下單后先鎖住庫(kù)存不是立刻扣減等到支付成功回調(diào)才真正扣掉庫(kù)存。如果用戶超時(shí)未支付訂單關(guān)閉的同時(shí)釋放預(yù)占庫(kù)存。這套流程用狀態(tài)機(jī)來管理訂單從待支付到已完成要經(jīng)過已支付庫(kù)存預(yù)占狀態(tài)跟著訂單狀態(tài)聯(lián)動(dòng)任何一步異常都可能造成超賣或者死庫(kù)存。實(shí)際項(xiàng)目中我給庫(kù)存扣減接口設(shè)計(jì)了樂觀鎖版本號(hào)??蛻粝到y(tǒng)調(diào)用扣減接口時(shí)必須帶version參數(shù)服務(wù)端用UPDATE ... SET stock stock - #{qty} WHERE sku_id #{skuId} AND version #{version}這樣的原子操作返回受影響行數(shù)為0時(shí)說明并發(fā)沖突客戶端需要重新查詢庫(kù)存再重試。有很多人問為什么不直接用Redis分布式鎖我的觀點(diǎn)是鎖適合短臨界區(qū)庫(kù)存扣減如果還聯(lián)動(dòng)單據(jù)日志、事件發(fā)布長(zhǎng)時(shí)間持鎖很容易把RT拖高樂觀鎖反而更干凈。還有一個(gè)高頻坑訂單取消和庫(kù)存釋放的順序。正確的做法是先更新訂單狀態(tài)為已取消再發(fā)送庫(kù)存釋放事件最后釋放預(yù)占。如果反著做極端情況下會(huì)出現(xiàn)訂單沒取消成功但庫(kù)存已釋放客戶以為是“不花錢下單”實(shí)際庫(kù)存已經(jīng)扣沒了。所以這兩個(gè)模塊之間的依賴我強(qiáng)烈建議通過消息隊(duì)列解耦而不是同步調(diào)用。2.3 支付結(jié)算與物流模塊組合場(chǎng)景的關(guān)鍵支付模塊在定制電商里經(jīng)常不是“接入微信、支付寶”這么簡(jiǎn)單客戶更關(guān)心的是資金歸集、多級(jí)商戶分賬、自動(dòng)對(duì)賬這些能力。支付模塊接口一般包括創(chuàng)建支付單、查詢支付結(jié)果、退款申請(qǐng)、退款查詢、對(duì)賬單下載。核心邏輯是支付回調(diào)的驗(yàn)簽——微信和支付寶的回調(diào)通知都帶簽名服務(wù)端必須先用證書驗(yàn)簽再處理業(yè)務(wù)絕對(duì)不能收到通知就改訂單狀態(tài)否則一個(gè)偽造回調(diào)就能把訂單刷成已支付。掉單問題也是老生常談??蛻粼谇岸酥Ц冻晒Φ卣{(diào)因?yàn)榫W(wǎng)絡(luò)抖動(dòng)沒有送達(dá)如果不對(duì)賬訂單就會(huì)一直停在“待支付”。我們提供了主動(dòng)查單接口前端支付回調(diào)超時(shí)后客戶端可以調(diào)用查單接口向支付渠道反查真實(shí)狀態(tài)以渠道側(cè)的結(jié)果為準(zhǔn)補(bǔ)單。這里的一定要做冪等因?yàn)榭蛻舻募夹g(shù)同事大概率會(huì)寫個(gè)重試重復(fù)查單不能重復(fù)入賬。物流模塊相對(duì)獨(dú)立但覆蓋面很廣。支持三方物流順豐、通達(dá)系就走快遞鳥、快遞100這類聚合服務(wù)接口無非是下單、軌跡訂閱、面單打印自建物流的客戶要對(duì)接的是本地配送調(diào)度系統(tǒng)需要提供派單、接單、送達(dá)回傳接口。物流接口的踩坑點(diǎn)主要在兩個(gè)地方一個(gè)是軌跡回調(diào)不落地只記錄不回寫訂單導(dǎo)致買家看到的物流信息跟實(shí)際脫節(jié)另一個(gè)是面單打印格式兼容同一個(gè)接口給不同快遞公司要用不同模板模板參數(shù)建議做成可配置項(xiàng)而不是寫死在代碼里。2.4 營(yíng)銷與會(huì)員模塊業(yè)務(wù)增長(zhǎng)的放大器營(yíng)銷模塊在定制電商里的角色比較特殊它跟業(yè)績(jī)直接掛鉤也是最容易“改需求”的模塊。優(yōu)惠券、滿減、秒殺、拼團(tuán)這些玩法客戶基本每隔一段時(shí)間就要調(diào)一次規(guī)則。我在設(shè)計(jì)營(yíng)銷模塊時(shí)堅(jiān)持一個(gè)原則優(yōu)惠計(jì)算邏輯必須配置化不能用代碼硬編碼。規(guī)則引擎接收一個(gè)JSON配置比如滿減就是{threshold: 299, discount: 50}券核銷就是{coupon_id: C001, user_tag: [new_user]}。這樣才能在客戶說“滿300減30改成滿299減50”的時(shí)候運(yùn)營(yíng)自己改配置而不是催我們發(fā)版本。并發(fā)場(chǎng)景下營(yíng)銷模塊最容易出的問題是優(yōu)惠疊加。一個(gè)訂單同時(shí)命中滿減、優(yōu)惠券、會(huì)員折扣計(jì)算順序不同結(jié)果就不同客戶投訴“上次下單便宜了這次怎么變貴了”。解決方法是定義優(yōu)惠計(jì)算的優(yōu)先級(jí)樹和互斥規(guī)則。比如平臺(tái)券和商家券互斥自動(dòng)選擇優(yōu)惠金額大的一方會(huì)員折扣和秒殺價(jià)互斥秒殺優(yōu)先。這套規(guī)則要在營(yíng)銷配置里顯式聲明并且保證計(jì)算服務(wù)是單線程處理同一個(gè)訂單的優(yōu)惠避免并發(fā)下的結(jié)果漂移。會(huì)員模塊相對(duì)波瀾不驚核心是等級(jí)、積分、儲(chǔ)值三塊。但要注意的是很多客戶會(huì)要求把會(huì)員數(shù)據(jù)和訂單數(shù)據(jù)打通做“消費(fèi)金額自動(dòng)升級(jí)”之類的規(guī)則。這種就屬于跨域事件消費(fèi)會(huì)員模塊訂閱訂單已完成事件按配置的規(guī)則累計(jì)成長(zhǎng)值。這里的心得是會(huì)員積分變動(dòng)一定要保留流水表一旦客戶說“我的積分怎么算錯(cuò)了”沒有流水是查不清的。3. 技術(shù)選型與關(guān)鍵機(jī)制落地3.1 接口規(guī)范與三層鑒權(quán)體系接口規(guī)范我直接采用RESTful風(fēng)格資源用名詞復(fù)數(shù)動(dòng)作交給HTTP方法語義GET讀、POST創(chuàng)建、PUT全量更新、PATCH部分更新、DELETE刪除。狀態(tài)碼嚴(yán)格使用語義化錯(cuò)誤400表示參數(shù)錯(cuò)誤401表示認(rèn)證失敗403表示無權(quán)限404表示資源不存在429表示被限流500表示服務(wù)端異常。很多客戶的技術(shù)同事習(xí)慣把業(yè)務(wù)錯(cuò)誤也返回200然后在body里放個(gè)code這種方式做內(nèi)部接口還行做企業(yè)級(jí)對(duì)外API會(huì)讓下游排查問題非常痛苦我不推薦。鑒權(quán)體系我設(shè)計(jì)成三層而不是簡(jiǎn)單發(fā)一個(gè)API Key了事。第一層是API Key用來標(biāo)識(shí)調(diào)用方應(yīng)用格式類似sk-xxxx。第二層是簽名用HMAC-SHA256對(duì)請(qǐng)求參數(shù)加時(shí)間戳做簽名防止請(qǐng)求被篡改和重放。第三層是用戶Token用來標(biāo)識(shí)真實(shí)操作者比如店員A還是管理員B。簽名生成的邏輯其實(shí)不復(fù)雜把業(yè)務(wù)參數(shù)按字典序拼接成字符串加上timestamp和nonce用共享密鑰做HMAC簽名服務(wù)端用同樣的密鑰驗(yàn)簽。這里有個(gè)細(xì)節(jié)時(shí)間戳的允許誤差我設(shè)成5分鐘太嚴(yán)格容易誤傷正常請(qǐng)求客戶端時(shí)鐘漂移太寬松又會(huì)放大重放攻擊的風(fēng)險(xiǎn)。網(wǎng)上關(guān)于鑒權(quán)報(bào)錯(cuò)的討論常年霸榜最常見的就是unexpected status 401 unauthorized: incorrect api key provided。遇到這個(gè)錯(cuò)我一般讓客戶按三步排查第一步確認(rèn)當(dāng)前請(qǐng)求打的是沙箱還是生產(chǎn)環(huán)境很多人測(cè)試時(shí)拿著生產(chǎn)環(huán)境的密鑰調(diào)用沙箱網(wǎng)關(guān)第二步確認(rèn)API Key是不是從配置中心復(fù)制的完整值很多管理后臺(tái)會(huì)把密鑰用星號(hào)脫敏顯示手動(dòng)復(fù)制是個(gè)大坑第三步確認(rèn)密鑰里有沒有特殊字符如果走URL傳參、/這些字符會(huì)被URL編碼改變服務(wù)端解出來就變了。3.2 冪等性設(shè)計(jì)電商接口的生死線做電商API不設(shè)計(jì)冪等等于拿著雷管點(diǎn)煙。網(wǎng)絡(luò)超時(shí)后的客戶端重試、消息隊(duì)列的重復(fù)投遞、運(yùn)營(yíng)手滑重復(fù)點(diǎn)擊“發(fā)貨”按鈕任何一個(gè)場(chǎng)景都可能導(dǎo)致重復(fù)下單、重復(fù)退款、重復(fù)扣庫(kù)存。我的做法是在網(wǎng)關(guān)層統(tǒng)一處理冪等客戶端在寫操作請(qǐng)求頭里帶上Idempotency-Key這個(gè)值一般用UUID。服務(wù)端收到請(qǐng)求后先去Redis檢查這個(gè)Key是否處理過如果處理過直接返回上一次的處理結(jié)果如果沒有則加分布式鎖后再進(jìn)入業(yè)務(wù)邏輯業(yè)務(wù)完成后把結(jié)果緩存起來保留時(shí)間一般是24小時(shí)。創(chuàng)建訂單接口是冪等設(shè)計(jì)的重點(diǎn)我用業(yè)務(wù)唯一鍵兜底。客戶端創(chuàng)建訂單時(shí)提交out_order_no服務(wù)端在訂單表上建唯一索引。如果重試請(qǐng)求落進(jìn)來數(shù)據(jù)庫(kù)會(huì)拋唯一鍵沖突我們捕獲這個(gè)異常后直接查出已存在的訂單返回。這樣即使Idempotency-Key因?yàn)槟承┰蚴Я藰I(yè)務(wù)層也能兜住。冪等設(shè)計(jì)還有個(gè)容易忽略的地方通知類消息。物流軌跡回調(diào)、支付回調(diào)、庫(kù)存預(yù)警這些消息中間件天然是“至少一次”投遞消費(fèi)端必須自己處理“恰好一次”語義。我在消費(fèi)者代碼里一律要求先查后寫拒絕無腦落庫(kù)否則凌晨一次網(wǎng)絡(luò)抖動(dòng)就能讓客戶看到自己的庫(kù)存數(shù)量翻了兩倍。3.3 限流、降級(jí)與網(wǎng)關(guān)聚合企業(yè)級(jí)API不像內(nèi)部接口可以靠“人少”撐住外部對(duì)接方也多總有幾個(gè)客戶會(huì)寫出bug級(jí)別的循環(huán)調(diào)用。我遇到過最夸張的情況一個(gè)客戶的定時(shí)任務(wù)寫錯(cuò)了時(shí)間間隔每毫秒調(diào)用一次庫(kù)存查詢直接把我的數(shù)據(jù)庫(kù)連接池打滿。所以限流是必須的。限流我用的是令牌桶算法網(wǎng)關(guān)層按API Key維度做配額默認(rèn)每個(gè)Key每秒50次突發(fā)峰值100次。批量數(shù)據(jù)同步類的接口單獨(dú)立配額比如商品創(chuàng)建接口每秒10次但允許單次批量100條這樣既照顧了大客戶批量導(dǎo)入的需求也保護(hù)了后端資源。限流觸發(fā)時(shí)返回429 Too Many Requests響應(yīng)頭里帶上Retry-After這比直接返回500對(duì)客戶端友好得多。降級(jí)和熔斷主要應(yīng)付慢調(diào)用。下游客戶的系統(tǒng)慢到超時(shí)我們不能跟著一起掛。我用的是熔斷器模式錯(cuò)誤率在10秒窗口內(nèi)超過閾值就打開熔斷器后續(xù)請(qǐng)求直接走降級(jí)邏輯比如返回緩存數(shù)據(jù)或明確提示“對(duì)方系統(tǒng)繁忙”。等過一段時(shí)間再放少量探測(cè)流量恢復(fù)正常就半開狀態(tài)。網(wǎng)關(guān)聚合層也是實(shí)際項(xiàng)目中非常實(shí)用的設(shè)計(jì)。小程序和移動(dòng)端經(jīng)常一個(gè)頁面要拉商品、庫(kù)存、優(yōu)惠券三個(gè)數(shù)據(jù)客戶端按順序調(diào)三次接口用戶體驗(yàn)差服務(wù)端壓力也大。我用BFF模式在網(wǎng)關(guān)層做一個(gè)聚合服務(wù)并行調(diào)用三個(gè)模塊的接口組裝好一個(gè)聚合響應(yīng)再返回。但聚合層要特別注意超時(shí)控制三個(gè)下游接口任何一個(gè)卡住聚合響應(yīng)就跟著慢所以不能等待所有調(diào)用都完成而是要設(shè)置一個(gè)合理的等結(jié)果超時(shí)比如200毫秒到了就先返回已有數(shù)據(jù)。4. 對(duì)接全流程實(shí)操與踩坑記錄4.1 一次典型對(duì)接的全流程拆解我把一次完整的企業(yè)級(jí)對(duì)接拆成四個(gè)階段每個(gè)階段都有明確產(chǎn)出物。階段一是需求確認(rèn)產(chǎn)出《接口對(duì)接清單》。這個(gè)階段其實(shí)不寫代碼就是開會(huì)把客戶的業(yè)務(wù)場(chǎng)景翻譯成接口清單。比如客戶說“我要把ERP里的商品同步到電商平臺(tái)”我們就要確認(rèn)是全量同步還是增量同步、是定時(shí)拉取還是實(shí)時(shí)推送、價(jià)格以哪個(gè)系統(tǒng)為準(zhǔn)。這個(gè)清單一定要讓客戶簽字確認(rèn)因?yàn)楹竺嫠虚_發(fā)工作都是以此為依據(jù)邊界不清是返工的萬惡之源。階段二是沙箱聯(lián)調(diào)產(chǎn)出《聯(lián)調(diào)自測(cè)記錄》。我們?cè)谏诚洵h(huán)境給客戶分配一套完整的測(cè)試數(shù)據(jù)包括測(cè)試SKU、測(cè)試優(yōu)惠券、模擬支付回調(diào)工具??蛻艏夹g(shù)同事在這個(gè)階段用我們寫的Mock工具把核心鏈路跑通。沙箱環(huán)境最重要的原則是“跟生產(chǎn)保持一致”不能沙箱里用的驗(yàn)簽邏輯和生產(chǎn)不一樣否則客戶在沙箱里跑得通上線時(shí)一樣踩坑。階段三是UAT驗(yàn)收產(chǎn)出《驗(yàn)收測(cè)試報(bào)告》。這個(gè)階段我會(huì)拉上客戶的業(yè)務(wù)方一起參加用接近真實(shí)的訂單數(shù)據(jù)走一遍完整流程重點(diǎn)核對(duì)金額計(jì)算、庫(kù)存變動(dòng)、對(duì)賬結(jié)果。我要求驗(yàn)收?qǐng)?bào)告里必須包含“正向流程”“逆向流程”“異常流程”三個(gè)部分比如下單支付成功、下單取消退款、支付回調(diào)超時(shí)補(bǔ)單少一項(xiàng)都不算通過。階段四是生產(chǎn)發(fā)布產(chǎn)出《上線Checklist》。上線前檢查生產(chǎn)環(huán)境的API網(wǎng)關(guān)白名單、生產(chǎn)密鑰配置、監(jiān)控告警閾值、消息隊(duì)列積壓情況。我會(huì)要求客戶在生產(chǎn)驗(yàn)證里先做一小批真實(shí)訂單確認(rèn)無誤后再放量。這個(gè)習(xí)慣保守但可靠幫我們多次避免了上線當(dāng)天就出大事故的尷尬。4.2 高頻報(bào)錯(cuò)排查實(shí)錄401、400、超時(shí)聯(lián)調(diào)期間的報(bào)錯(cuò)來來去去就是那幾個(gè)我把高頻問題按現(xiàn)象整理成了排查手冊(cè)。第一個(gè)是401 Unauthorized這個(gè)錯(cuò)在聯(lián)調(diào)第一天出現(xiàn)的頻率最高。除了前文說的密鑰和簽名問題還有一個(gè)原因經(jīng)常被忽略簽名參數(shù)的標(biāo)準(zhǔn)順序。就一個(gè)字符串拼接順序的問題客戶那邊調(diào)了一天都報(bào)401最后發(fā)現(xiàn)是sig參數(shù)自己也算進(jìn)了待簽名字符串里導(dǎo)致服務(wù)端驗(yàn)簽結(jié)果永遠(yuǎn)不一致。我后來在文檔里加了“待簽名串不要包含簽名本身”這句紅字事故率立刻下降。第二個(gè)是400 Bad Request這個(gè)錯(cuò)誤碼背后的原因就更多了。有一類特別典型就是請(qǐng)求體過大。大模型API的那個(gè)報(bào)錯(cuò)this models maximum context length is 1048576 tokens雖然說的是token數(shù)超限但本質(zhì)跟我們電商API遇到請(qǐng)求體超過100MB一樣都是“單次請(qǐng)求數(shù)據(jù)量撐爆了服務(wù)端的處理邊界”。排查方法是看網(wǎng)關(guān)訪問日志如果請(qǐng)求體大小觸達(dá)限制就把批量改成分批或者讓客戶精簡(jiǎn)冗余字段只傳接口需要的最小屬性集。第三類是超時(shí)connect timeout和read timeout是兩類完全不同的故障。連接超時(shí)一般是網(wǎng)絡(luò)鏈路問題我從客戶端用tcping直接測(cè)API網(wǎng)關(guān)的端口連通性如果公網(wǎng)到網(wǎng)關(guān)這段不通先把防火墻和安全組放開。讀取超時(shí)更多是服務(wù)端處理慢或者要傳輸?shù)臄?shù)據(jù)量本身太大。比如客戶用一條請(qǐng)求拉取全量商品加全量庫(kù)存響應(yīng)體到了幾十MB讀取超時(shí)幾乎是必然的。這時(shí)候我會(huì)勸客戶改用分頁游標(biāo)接口一次性只拉100條配合游標(biāo)翻頁雖然請(qǐng)求次數(shù)多了但每次響應(yīng)都快整體穩(wěn)定性高得多。還有一類本地聯(lián)調(diào)的環(huán)境報(bào)錯(cuò)典型的就是failed to connect to the docker api。這跟API接口本身沒關(guān)系是Docker Desktop這個(gè)客戶端連不上本地服務(wù)導(dǎo)致的。我一般讓客戶先檢查Docker服務(wù)的運(yùn)行狀態(tài)再看端口映射有沒有生效用docker ps確認(rèn)容器是不是真的起來了。這個(gè)問題看著低級(jí)但很容易讓新手聯(lián)調(diào)半天找不到方向其實(shí)核心就是“服務(wù)有沒有在監(jiān)聽你要連的那個(gè)端口”。4.3 聯(lián)調(diào)環(huán)境的版本兼容問題做企業(yè)級(jí)項(xiàng)目一定會(huì)遇到多版本API共存的時(shí)期。老客戶已經(jīng)跑了好幾年你不能因?yàn)樾鹿δ馨l(fā)布就強(qiáng)制他升級(jí)新客戶又必須用新版接口不然做不了他需要的個(gè)性化場(chǎng)景。我的策略是網(wǎng)關(guān)按版本號(hào)路由新舊接口并存老版本不輕易下線。版本管理在URL上直接體現(xiàn)/v1/orders和/v2/orders各走各的。老版本接口就算要改也只做兼容性擴(kuò)展新增字段必須是可選的不能修改舊字段的含義更不能調(diào)整必填屬性。有一次我們想給訂單查詢接口加一個(gè)“包含退款狀態(tài)”的參數(shù)如果按必填設(shè)計(jì)老客戶不改代碼就會(huì)報(bào)400所以這個(gè)參數(shù)被設(shè)計(jì)成可選默認(rèn)falseAI生成的老請(qǐng)求完全不受影響新客戶傳true就能拿到新能力。兼容問題上我吃過的虧是SDK版本混用??蛻粲昧死习鍿DK請(qǐng)求新接口網(wǎng)關(guān)按版本路由到新服務(wù)老SDK的簽名算法和參數(shù)格式對(duì)不上直接返回簽名驗(yàn)證失敗。排查這個(gè)問題的效率非常低因?yàn)閳?bào)錯(cuò)都指向網(wǎng)絡(luò)層實(shí)際卻是SDK和服務(wù)端版本不匹配。后來我把SDK里打上版本號(hào)每次請(qǐng)求頭帶上X-SDK-Version網(wǎng)關(guān)日志里就能直接看到客戶端的SDK版本這類問題排查時(shí)間從一小時(shí)縮短到五分鐘。5. 常見問題速查與個(gè)人心得5.1 按場(chǎng)景整理的問題速查表把散落各處的經(jīng)驗(yàn)匯成一張速查表聯(lián)調(diào)時(shí)碰見問題可以先對(duì)著找。場(chǎng)景現(xiàn)象根因解決方案商品同步部分商品狀態(tài)字段是空客戶ERP字段映射未配置檢查字段映射表的default_values批量導(dǎo)入接口返回400請(qǐng)求體過大單次批量超過上限分批導(dǎo)入每批不超過100條下單重復(fù)提交產(chǎn)生了重復(fù)訂單缺少冪等鍵或唯一業(yè)務(wù)鍵檢查Idempotency-Key和out_order_no庫(kù)存扣減并發(fā)扣減導(dǎo)致庫(kù)存負(fù)數(shù)缺少樂觀鎖或原子更新使用版本號(hào)條件更新支付回調(diào)訂單狀態(tài)未變成已支付回調(diào)未送達(dá)或驗(yàn)簽失敗查看回調(diào)日志觸發(fā)主動(dòng)查單優(yōu)惠計(jì)算同一訂單不同結(jié)果優(yōu)惠疊加順序不一致顯式配置優(yōu)先級(jí)和互斥規(guī)則查詢接口響應(yīng)慢或讀取超時(shí)一次拉取數(shù)據(jù)量過大改用游標(biāo)分頁簽名401 unauthorized簽名串包含簽名本身排除sig參數(shù)后拼接待簽名串環(huán)境401 unauthorized沙箱環(huán)境用了生產(chǎn)密鑰核對(duì)密鑰與環(huán)境匹配本地聯(lián)調(diào)docker連接失敗容器未運(yùn)行或端口未映射用docker ps檢查容器狀態(tài)5.2 我在多次對(duì)接中攢下的幾條心得第一文檔質(zhì)量決定對(duì)接效率。代碼寫得再好文檔寫不清楚一樣讓客戶抓狂。我要求的文檔必須包含三件套每個(gè)接口的請(qǐng)求示例和響應(yīng)示例用真實(shí)字段值不是string這種類型占位、錯(cuò)誤碼字典每個(gè)錯(cuò)誤碼什么含義、怎么解決、變更記錄版本號(hào)對(duì)應(yīng)改了什么不能只寫“修復(fù)已知問題”。第二沙箱測(cè)試數(shù)據(jù)一定要有“量感”。我見過客戶的測(cè)試環(huán)境商品單價(jià)是0.01元訂單量是1聯(lián)調(diào)階段一切順利一上生產(chǎn)發(fā)現(xiàn)對(duì)賬單格式錯(cuò)了、退款金額精度丟了、報(bào)表匯總差了幾分錢。因?yàn)闇y(cè)試數(shù)據(jù)沒有規(guī)模效應(yīng)很多問題只有在數(shù)據(jù)量大時(shí)才會(huì)暴露。我現(xiàn)在都要求沙箱里準(zhǔn)備1萬級(jí)別的SKU、千元左右的訂單金額提前感受生產(chǎn)環(huán)境的體量。第三監(jiān)控告警要早做不能等上線后再補(bǔ)。一個(gè)企業(yè)級(jí)API至少要監(jiān)控四類指標(biāo)接口成功率、調(diào)用量趨勢(shì)、錯(cuò)誤碼分布、關(guān)鍵業(yè)務(wù)單量下單量、支付量、退款量。告警閾值要按模塊單獨(dú)配核心交易鏈路成功率的告警閾值設(shè)到99.9%非核心查詢模塊可以寬一些。我還習(xí)慣把錯(cuò)誤碼Top5做成看板因?yàn)殄e(cuò)誤碼分布的變化往往比成功率更能提前暴露問題。第四先跑通最小閉環(huán)再談業(yè)務(wù)細(xì)節(jié)。很多項(xiàng)目卡在“想把所有功能一次性做完美”上我覺得這是最大的坑。最好的策略是先打通一條完整業(yè)務(wù)鏈商品上架、用戶下單、支付回調(diào)、庫(kù)存扣減、訂單發(fā)貨。這條鏈通了客戶就能看到系統(tǒng)在真實(shí)運(yùn)轉(zhuǎn)后面加營(yíng)銷、會(huì)員、報(bào)表都是錦上添花。先跑通鏈路帶來的信心和交付感比任何進(jìn)度報(bào)告都管用。寫到這里我翻了翻這幾年經(jīng)手的對(duì)接記錄最深的一個(gè)體會(huì)是做企業(yè)級(jí)定制電商API最累的不是寫代碼而是理解每個(gè)客戶腦子里的業(yè)務(wù)邏輯。有些人覺得API就是接口文檔加一套測(cè)試環(huán)境但真正讓這個(gè)項(xiàng)目值錢的其實(shí)是把那些散落在客戶ERP、WMS、OA里的業(yè)務(wù)流程翻譯成一套清晰的模塊化接口語言。這個(gè)過程急不得就像搭樂高先分好類、再找對(duì)拼接口最后才能拼出客戶想要的形狀。希望這些實(shí)操經(jīng)驗(yàn)?zāi)茏屇闵僮邘撞綇澛穼?duì)接的時(shí)候不慌遇到報(bào)錯(cuò)也不至于從頭開始猜。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
六月五月婷婷| 狠狠香蕉| 丁香婷色| 久久婷婷五月天丁香| 色色射| 99碰网站| 午夜在线成人网站免费观看| 九九热最新| 99熟女| 99人妻碰碰久久久禁片| 色一情一乱一乱一区91Av| 婷婷五月天xxx| 婷色综合| 九九视频在线观看视频6| 婷婷色五月丁香六月欧美啪| va婷婷在线免费观看| 淫五月停停| 超碰在线综合| www.99热. com这里只有精品| 99ri精品在线| www.久久久久久久久久.com| 国产SUV精品一区二区883| 亚洲情欲| 国产色婷婷亚洲| 丁香密臀AV激情网| 婷婷激情四射五月天| 三区激情四射av| 亚洲在线播放| 67194线路二在线观看| 狠狠干五月天| 九九热精品| 婷婷 激情 五月| 日本天堂网站99| ww久久| 婷婷丁香综合成人| 亚洲精品性色| 激情婷婷五月色| 日本久久综合| 91操网| 中文字幕av久久爽| 久久蜜臀婷婷| 蜜乳AV成人| 开心五月深爱五月婷| 色婷婷av在线| 久久免费试看120秒| 狠狠色综合网| 九九热视频精品2| 午夜微拍福利| 久操欧美在线观看97| 欧美色色色| 五月天婷婷基地综合网| 在线网黄| Www.久久| 日本色爽| 激情网战码亚洲A| 久久五月丁香| 亚洲成人五月天| 久久六月天| 亚洲第一黄网| 色色色色色色色色色色色色色色,网站| 色五月婷婷AV| 99热 精品在线| 婷婷五月丁香基地| oVV4WIB3vFi8D| 9999综合99综合人| 五月丁香成人网| 久久人妻伊人| 婷久看人爽| 伊人五月天久久| 久久综合九九| 久色婷婷200| 超碰国产在线| 五月婷中文娱乐综合| 超碰91在线| 久久久久久综合五月婷婷| 99碰| 大鸡巴伊人网| 亚洲五月天婷婷在线| 婷婷五月丁香啪啪| 99啪视频在线观看| 五月婷在线观看| 婷婷六月情| 啪啪色激情五月天| 色噜噜狠狠色综合网| 成人做爰高潮A片免费视频 | 99色在线| 99超级碰免费视频| 久久99热免费最新版| 日韩三级片一区二区| 丁香香蕉婷婷| 99年操人人爽| 狠狠五月天| 天堂综合久| 激情综合网激情五月丁香| 日韩综合久久| 婷婷久久精品| 1024成人在线观看| 伊人丁香五月婷婷潮吹| 色五月美女| 五月丁香啪啪网| 丁香五月综合在线视频| 米奇影视五月天| 99 热国产在| 色99超碰| 激情五月天福利| 五月激情影院| 91蜜桃婷婷狠狠久久综合9色| 丁婷婷五月天在线播放| 人人摸人人干人人做| 婷婷五月天无码熟女| 成人五月丁香社区| 色五月综合在线| 日本97久久久精品| 97色干| 五月激情站| 夜夜操狠狠操天天操| 66精品国产成人| 日本一级特黄大片AAAAA级| 在线中文AV| 色婷婷久久| 婷婷午夜激情| 亚州色色色| 久久综合性| 成人综合AV| 六月丁香综合| 日本久久精品18| 玖玖热视频| 思思热在线免费视频| 这里只有精品日韩| 日韩成人五月天| 五月六月播婷婷| 九月丁香亭亭| 蜜臀A∨在线水帘洞| 激情文学 综合 色| 五月天婷婷色播综合在线| 五月丁香欧美综合| 久久激情视频99| 欧美日韩99| 五月色色色| 五月丁香六月激情综合| 久久97久久99久久综合欧美| 亚洲AV成人一区二区在线观看| 国产XXXX搡XXXXX搡麻豆| 六月激情网| 一本色道久久综合狠狠躁小说| 一本久道综合色婷婷五月| 99色热视频| 婷婷伊人综合中文字幕| www.夜夜操.com| 色五月婷婷综合| 五月丁香啪啪综合| 少妇AB又爽又紧无码网站| 欧美黑人巨大性生话| 成人综合网站| 丁香五月婷婷www..com| 日本系列_4页_777FP| 91人人网| 深爱激情九九五月天| 色五月五月天| 久久久久久久人妻| 天天干天天插| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 色天天久婷婷| 久热视频这里只有精品| 五月天婷综合| 五月激情小说| 丁香六月婷婷久久亚洲天堂| 色婷婷av在线| 伊人婷婷激情| 久草狼人| 最近韩国日本免费高清观看| 91色欲综合| 97碰人人操| 男女99免费视频| 开心激情色婷婷五月天| 色五月丁香婷婷| 玖玖在线视频福利| 国色天香伊人狠狠色| www五月天com| 大香蕉av在线| 9热久久| 影音先锋91资源站| 天天噜天天爱| 丁香五月天堂网| 综合色色婷婷| 五月丁香婷婷欧美色图视频五月丁香777电影| 婷婷婷久久| 成人综合视频在线| 激情丁香五月激情婷婷| 久久婷婷五月综合伊人| 黑人巨粗进入警花疼哭A片| 亚洲182在线观看| 大香蕉大香蕉在线影院| 婷婷狠狠五月综合| 99九九在线| 国精产品一区一区三区免费视频| 欧美超级视频97| 99免费热在线精品| 婷婷性福五月天| 色色操| 丁香婷婷五月激情四射网| 婷婷少妇激情| 激情深爱五月| 成人精品视频99在线观看免费| 99性色| 久久五月天婷婷| 丁香婷婷欧美综合| 五月丁香婷婷福利| 久久久香| 欧美婷婷综合网| 丁香五月情色| 99九九99九九九视频精彩| 亚洲成av人影院| 婷婷色五月开心五月| 欧洲亚洲免费视频区| 夜夜干 夜夜操| 婷婷色影院| 中文成人在线| 这里只有免费的精品| www.99久| 色香久久| 影音先锋777xfplay色资源网站| 婷婷狠狠干| 91av成人| 人人天堂操| 婷香五月激情视频| 丁香网站| 狠狠干五月天婷婷网| www.色色色色| 噼里啪啦在线观看免费完整版视频 | 1995年关宝慧版蜘蛛女| 五月花婷婷| 九九综合图片网| 婷婷五日b| 五月天六月丁香| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 99热这里只有精品中文字幕| 天堂色婷婷| 天天天摸夜夜夜玩| 精品欧美性爱超级爽| 亚洲国产婷婷色五月| 日本天天操| 五月婷婷丁香在线视频| 五月 丁香 欧美| 999九九九久久久99HD| 婷婷色中文字幕| 五月天天视频| 天天干夜晚夜操| 秋霞电影理论| 婷婷五月激情丁香激情| 丁香婷婷偷拍| 成人超碰AV| 日韩久久色| 色五月,婷婷大香蕉| 国产AV一区二区三区最新精品| 色欲婷婷五月天| 99免费在线| 五月丁香婷婷激情在线| 婷婷五月天99| 五月丁香六月婷婷a v| 热五月婷婷| 99色视| 色综合色| 思思久久99热只有频精品66| 激情内射人妻1区2区3区| 久久婷婷久久| 亚洲成人av在线| www.狠狠干com| 色五月婷婷少妇人妻| 久久天天天| www色色com| 色碰碰| 丁香 久久| 操逼综合网| 九九色婷婷五月天| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 色色性爱视频| 久久久27操| 天天看夜夜看| 天天色天天爱天天爱天天爱y| 精品无码99| 综合网五月天123| 色 五月婷婷基地| 激情纯色婷婷五月天在线不卡视频| 免费精品66| 26uuu四色| 色五月开心五月激情五月| 色热久资源| 色婷婷五月天天天天天| 久久婷婷五月草视频| 青草久久五月婷伊人| er99免费视频在线| 99热这里只有精品在线| 丁香五月色情| 国产精品成人AV在线观看春天| 日产精品一线二线三线芒果| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 五月天俺去也| 91ncm视频| 丁香五月激情综合| 欧美,日韩成人在线| 沈娜娜av| 四色永久成人网站| 狠狠五月激情在线| 囯产精品一品二区三区| 成人永久免费视频在线观看| 色丁香五月婷婷| 91无码一区人妻A片蜜| 久久五月天丁香花| 婷婷激情五月天网站| 夜夜夜叫天天天做| 五月丁香六月婷婷中合网| 亚洲五月天色| 99操逼| 日本色天堂| 色播五月婷婷| 91视频久久久| 99热这里只有精品1025| 婷婷丁香五月天综合AV| 色色网站| 九九在线热九九在线热99热| 色色色婷婷五月天| 思思热久热| 99爱视频在线观看| 婷婷碰碰| 色色网站在线免费观看视频| 亚洲成人无码网站| 婷婷综合在线网| 99热网站| 91操熟女| 婷婷丁香五月天大香蕉| 狠狠操狠狠狠| 欧美激情综合色综合啪啪五月| 精品九九九久| 婷婷亚洲天堂| 九九热精品99| 丁香五月婷婷少妇| 丁香色六月| 五月婷在线视频免费看| 色99在线| 色婷婷五月天中文字幕| 欧美大香蕉视频| 国产欧美精品AAAAAA片| 午夜丁香丁香婷婷| 久久综合性| 最近中文字幕大全免费版在线| 欧美久人人| 五月婷婷九| 午夜丁香婷婷| 99色 | 91在线97视频| 26uuu亚洲欧美另类| 中文字幕在线日亚洲9| 五月精品99综合| 天堂婷婷五月在线| 人妻人人操| 99热久草| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 五月丁香六月综合基地| 这里只有精品久久| 五月天婷综合| 91综合色| 色婷婷97| 可以免费观看的AV| 五月丁香美女| 久操操| 欧亚洲在线高清视频| 欧美大道不卡| av国产精品偷| 色色色色综合网| 欧美操逼天堂| 超碰人人操在线| 色综合久久88色综合天天99| 婷婷丁香色情| www99热| 深夜男女福利刺激影院一区| 丁香婷婷六月激情文学| 99色视频| 婷婷夜夜夜夜| 91丨人妻丨国产丨丝袜| 99re热在线视频观看| 97超碰99热99| 超碰成人av| 中文资源在线a| 另类 在线| 久久婷网| 综合色99| 色色综合视频| 啪啪 综合网| 99狠狠色| 婷婷五月成年人| 噼里啪啦在线观看免费完整版视频| 亚洲女婷婷五月基地综合久久久| 亚洲综合视频八| 99精品亚洲| 色一情一乱一乱一区9| 婷婷六月插屄激情| 9热久久| av在线中文| 色优久久| 久久精品A片777777| 婷婷丁香五月天狠狠| 日本三级日本黄色| 97久久久久| 婷婷欧美色| 色噜噜丁香| 五月婷婷五月天激情网| 97色婷| 成人精品在线| 九九婷婷网五月天| 激情五月婷黄版| 免费在线观看AV网站| 六月丁香社区| 天天干,天天舔| www激情网| 丁香五月激情婷婷视频| 五月丁香久久网| 99婷婷五月天| 在线色五月婷婷| 婷婷五月天无码视频| 色网站99| 人妻操在线看| 婷婷久久精品| 啪啪啪大香蕉| 五月丁香六月婷| 99热免费| 另类少妇人与禽zOZZ0性伦| 亚洲AV成人在线| 另类图片五月天| 国产国产乱老熟女视频网站97| 日欧一片内射VA在线影院| 五月婷综合| 99精品在线观看| 亚洲熟妇AV乱码在线观看| 国产AV一区二区三区最新精品 | 无码一区二区日韩| 五月婷婷先锋| www.色色五月天.com| 91ncom.色| 五月婷婷丁香综合| 丁香五月婷婷色综合基地| 五月婷婷之六月丁香| 婷婷综合六月| 久久9精品| 人妻少妇色综合| 久草婷婷在线| 天堂久久婷婷| 操笔无码| 六月丁香五月天| 欧美色99| 蜜臀AV在线观看| 91a片爽| 亚洲 成人 电影av在线观看| 99在线观看视频| 亚洲日本激情| 激情五月丁香综合网站| 天天干天天色综合| 婷婷丁香五另类网站| 九九热九九| 日本三级毛片| 2015好吊操| 狠狠五月天婷婷| 亚洲综合婷婷六月丁香五月| www.色婷婷| 99精品成人无码A片观看金桔| 草草色情综合网| 丁香五月大香蕉AV| 99热精品在线播放观看| 91九色中文| 九月婷婷久久| 97在线干| 99精品久久久| 日日操天天| 操97| 丁香婷婷浪潮AV久久综合| 思思99久久| 97婷婷丁香五月天激情图片| 天堂久久婷婷| 99riAV成人在线视频| 欧洲一区二区| 任你干嘛免费视频播放| 大香蕉久艹| 亚洲 小说 欧美 激情 另类| 色婷婷9| 69精品人人人人人人人人人| 色五月激情| 国产一区男女| 99热精品中文字幕| 综合精品99| 天天 青草 制服丝袜 在线 | 99视频这里只有久久精品 | 婷婷导航| www99久久| 日本在线噜噜| 99精品在线观看| 免费成人中文字幕| 色网站99| 婷婷五月天综合网| 久久艹网| 激情五月婷婷综合网| 久草五月婷婷| 超碰色天堂| 管管補管管紱| 深爱激情丁香| 超级碰碰91| 日本成人噜噜| 久久精品99国产精品日本| 色狠狠色综合久久久绯色AⅤ影视| 九九久久综合网站| 成人丁香五月| 碰97久久| 97色色综合| 亚洲妇女熟BBW| AV在线资源| 天天色天天日天天舔| 国产成人AV| 九月婷婷激情| 99热国内精品| 五月婷综合| 色香蕉精品五夜婷| 在线五月色播| 婷婷免费视频| 婷婷五月天激情四射| 十一月婷婷激情四射| 五月天婷婷狂暴白浆| 99热 免费| 超碰人人艹| 九九热婷婷| 色丁香婷婷| 亚洲三级无码| 中文字幕日韩无码制服诱或| 国产古装妇女野外A片| 性色欲情 网站| 大香蕉网站,大香蕉综合| 日本欧美啪啪| 色情婷婷五月天| 雪千夏麻豆| 天堂婷婷丁香六月网| 91婷婷| 免费视频舔| 99综合久久| 五月色激情综合网| 五月婷婷在线免费| 国产小网站| 久久久性爱视频| 超碰在线资源| 日日噜狠狠色综合久| 97在线日韩| av中文网站| 99久久综合狠狠综合久久| 亚洲国产成人裸舞| 大香蕉在线99热| 一级二级香港秋霞欧美欧美秋霞| 2050人人操免费工开爱 | 婷婷五月天激情综合深爱| 亚洲乱码日产精品BD| 99视频久久免费视频| 99热精品在线| renre人人操国产超碰在线| 精品夜夜澡人妻无码AV| 五月天久久成人| 丁香五月五月婷婷欧美大香蕉| 色国产五月| 国自产拍偷拍精品啪啪一区二区 | 日本一级黄色电影| 99色视频在线| 日日天天操| 香蕉久久国产AV一区二区| bbwcuckold精品熟妇| 婷婷久久综合久| 激情五月六月婷婷综合啪啪| www.91热久久| 97色色综合| AV在线中文| 日本色五月| 色五月婷婷久久爱| 69凹凸成人综合网| 亚洲综合五月| 九月婷婷综合网| 婷婷色丁香五月| 97碰久久| 九九热精品| 婷婷五月天亚洲综合网| 久久精品女人天堂AAA| 狠狠色丁香久久婷婷综合五月| 久99婷婷色综合| 丁香婷婷激情网站| 六月婷欧美| 99热这里有精力| 亚洲 小说 欧美 激情 另类| 亚洲av午夜精品一区二区| 成人av在线网站| 丁香六月婷月91婷月| 超碰免费成人网站| 激情五月天偷拍综合网| 色五月婷婷久久| 99re在线播放| 99色色热| av中文字幕免费观看| 狠狠色狠狠操| 丁香五月六月久久综合| 99爱在线| 亚洲成人在线播放| 五月婷婷激情四月| 色婷婷色综合激情91| 婷婷婷婷色| 激情婷婷五月天在线观看| 丁香五月婷婷大香蕉| 99热九九热| 六月婷婷狠狠做| 婷婷欧美激情| 欧美人与性动交CCOO| 亚洲婷婷开心五月| 99婷婷国产最新视频| 狠狠干综合| 五月天成人小说| 婷婷六月色丁香视频在线观看| 国产女生爱爱AA| 国产亚洲在线观看| 婷婷丁香五月天小说| 啪啪丁香五月| 伊人久久丁香狠狠婷婷综合香蕉 | 999久久久国产精品| 337p大胆噜噜噜噜噜91Av| 午夜色丁香| 婷婷色情网| 婷婷无五月无码视频| www.henhenl| 国产热精品| 久综合色| 97干资源在线观看| 色婷婷综合视频| www.激情五月| 99 这里只有精品| 大香蕉天堂| 在线观看视频1区| 色屌丝中文字幕| 开心网五月色婷婷| 五月丁香六月婷婷中文版| 欧美六月| 婷婷色基地在线看| 中文AV网| 丁香婷婷人妻综合网| 久久伦乱| 久久青青日本视频| 亚洲成人AV高清字幕| 玖玖在线视频| 六月婷婷激情| 婷婷五月18永久免费视频| 第2色五月婷| 婷婷五月综合社区| 超热久碰.com| 精品9久| 无码免费人妻A片AAA毛片西瓜| 大香蕉99热| 天天久综合| 99热青青草原| 色婷婷色情| 天天天天天天天干| 婷婷97| 六月婷婷视频| 六月丁香开心婷婷欧美| 影音 五月 婷婷 久久| 久久久婷婷| 五月天婷婷激情在线色图| 婷婷玖玖五月天| 色久五月天| 亚洲色色精品| 五月天婷婷伊人| 亚洲俩性性爱图片久久第六页| 日韩999| 久久99久久99精品免观看粉嫩| 9久操| 色婷婷亚洲综合网站| 丁香情色五月| 色婷婷狠狠久久综合五月| 中国女人内射6XXXXX| 久久久婷婷婷| 青柠影视免费高清电视剧| www久| 天天做天天爱天天爽| 久久99网站| 九九热av| 成人看片网站| 欧美噜一噜| 亚洲激情99| 亚洲性爱干干| 日本狠狠爽| av在线观看免费| 色综合久久88色综合天天99| 国产9色在线/日韩| 伊人影院久久网| αv中文字幕在线观| 亚洲成人AV电影在线| 婷婷五月花| 极骚大香蕉伊人| www.一区二区三区| 色色综合热| 成人短视频免费| 久久婷婷激情四射五月天| 操人精品| 久9热| 日日操夜夜爽白洁| 婷婷五月天综合蜜桃| 色婷婷色人人射| 99热精品在线播放| 播播网色播播| 玖玖婷婷五月天| 日本一级一级一级一级| 另类小说五月天| 五月丁香综合啪啪| 国产偷人爽久久久久久老妇APP | 国产乱码久久| 激情伍月 欧美| 丁香婷婷啪啪啪| 婷婷丁香五月亚洲免费| 婷婷综合视频| 午夜五月天| 嫩草AV久久伊人妇女超级A| 97久久人人人干| 天堂va久久久噜噜噜久久Va| 大香蕉五月天婷婷| 玖玖在线资源视频| 久久人妻伊人| 五月丁香激情综合啪啪| 天天操天天操天天操天天操天天操| 婷婷午夜| 97丁香五月| 97色在线| 中日韩美欧成人一区二区精品在线| 亚洲黄网在线| 99热这里都是精品| 99高级会所久久| 开心婷婷五月中文字幕组| 十一月婷婷激情四射| 五月天婷婷基地| 农村熟妇高潮精品A片| 久久久国产精品黄毛片 | 激情婷婷丁香色情五月天| 伊人青草成人| 久久这里有精品视频| 天天色丁香| 五月婷丁香| 操比激情五月| 99国产小视频2013| 毛片毛片毛片毛片| 五月激情视频| 色综合色香蕉网| 人人操人人操919999| 色播丁香五月婷婷操:屄| 亚洲色激情| 久久ww| 色欲AVV| 久久99婷婷| 五月婷婷免费在线观看| 五月天色色婷婷| 欧洲第一无人区观看| 99热第一页| 青青草护士中出内射-欧美电影在线天堂新版 | 色的色综合| 婷婷大乡焦噜噜| 国产偷人爽久久久久久老妇APP| 九九中文字幕九| 亚洲 精品 综合 精品| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 六月丁香中文字幕| 99精品视频免费观看近期发布| 婷婷久久五月丁香| 天天射夜夜骑| 丁香久久综合| www.99.色| 99视频色在线观看| 九九婷婷网五月天| 国产成人精品123区免费视频| 九九综合网色全集 | 在线精品97| 三级毛片7979| 五月色丁香激情| 久久99精品久久只有精品| 91av无码| 五月丁香在线国产| 99色综合| 五月天另类视频| 色色97丁香婷婷五月天| 天天噜天天爱| 色播六月| 操逼综合激情网| 五月天激情偷拍| 亚洲熟女色| 成年视频免费观看| 热99热9| 婷婷丁香久久| 激情99热| 性色五月天| 欧美A级成人婬片免费看理论| 九九色色| 超碰免费成人| 99免费在线视频| 丁香五月激情无码视频| 久草热久草在线视频| 色婷婷狠狠18禁| 九色无码| 久久99免费视屏| 开心激情久久久久久久| 国产乱妇乱子在线播视频播放网站| 婷婷激情综合网| 情婷婷五月天| 亚洲综合视频八| 激情综合网,婷婷五月天| 久久久久久久人妻| 婷婷色色五月天| 99热日韩| 五月丁香婷婷色| aa久久| 久久精品99久久久久久| 噜噜吧天天爱| 婷婷五月欧美| 99热这里只有精品搜| 夜色五月天| 丁香五月婷婷天激情| 夜夜穞天天穞狠狠穞AV美女按摩| 五月丁香久人妻中文| 久久久久9| www.婷婷六月天| 色婷婷在线播放| 色色色在线| 久久精品系列| 中文无码婷婷| 色丁香久久| 精品久久久999| 九九色综合网| se.久久视频在线观看| 亚洲第一第二网站| 日日噜噜久久婷婷五月天| 五月天另类图片| 久久综合9| 99热99美国在线观看| 丁香五月成人网| 九九99在线视频| 伊人色综合网| 在线观看av网站| 天天综合在线网| 日日骑夜夜撸| 色婷久久| 五月天婷婷久色| 七七婷婷综合| 亚洲第一第二网站| 婷婷五月中文字幕| 超碰99久久| 成人午夜无码视频| 九色视频91| 67194国产| 97干在线| 久久婷婷五月丁香| 久久ri精品视频| 激情都市丁香婷婷| 日本在线视频播放91| 日韩另类| 乱女乱妇熟女熟妇综合网站| 亚洲精品一区无码A片| 婷婷五亚洲| 第五婷婷伊人丁香| 五月丁香啪啪伦理电影| WWW·色色色·COM| 亚洲综合色婷婷| 五月婷婷久久激情| 丁香亭亭激情四射| 五月丁香综合| 五月天婷婷激情网| 久久精品99国产精品日本| 五月天婷婷色播| 成人国产网| 超碰93在线观看| 久久五月丁香婷婷| 国产XXXX搡XXXXX搡麻豆| 五月激情综合深爱| 欧美三级黄色片久久| 色五月婷婷五月| 激情网五夜婷婷| 伊人网色婷婷五月天| 直接看的av| 女性自慰系列第五页| 日本视频不卡123区| 婷婷五月天综合中文| 五月婷婷婷| 欧美性爱五月天| 亚洲va在线∨a天堂va欧美va| 欧美色99| 99热个人在线| 国产精品色色| 思思热在线视频观看精品| 日韩在线一级| WWW,激情五月天,COM| 丁香六月婷婷色XXXX| 国产精品爽爽久久久久久| 亚洲婷婷丁香五月在线| 99精品综合在线| 亚洲激情婷婷| 亚洲国产va| 超级碰碰碰久久网站视频| 日韩啪啪网| 丁香婷婷六月激情综合| 色~性~乱~伦~噜| 色婷婷伊人激情在线观看| 丁香五月六月婷婷综合| 伊人网欧美在线男人天堂五月丁香| 亚洲无码 图片区| 色色色地址| 99热日本| 亚洲啪啪视频| 99欧美热| 婷婷色五月激情强奸四射| 久久久人妻久久久| Av免费网站在线| 久久99网| 成人丁香五月| 欧洲激情五月天婷婷| 99精品高潮| 亚洲mm免费| 人人干av| 婷婷丁香五月亚洲免费| 亚洲 综合中文| 人人看人人97| 亚洲AV日韩在线观看| 色播五月丁香| 婷婷的色色五月天| 大伊久久| 天天操天天爱天天日| 99热精品超碰| 97caop| 任你草| 久久五月天婷婷| 五月丁香色色综合| 激情亚洲婷婷| 日韩啪啪视品| 99啪啪| 九九久久五月天| 99热色在线精品| 激情五月伊人婷婷| 日韩一级A片黄色| 丁香五月综合久久| 九九热狼人| 久久久99精品免费观看| 伊人99热| 婷婷五月天亚洲五码| 婷婷六月色播| 婷婷丁香六月激情综合| www.yw尤物| 亚洲久久日| 玖玖九九9999在线观看视频精品| 思思热视频在线| 成人羞羞啪啪 全 视频| 久久99久久99精品免观看粉| 婷婷五月综合网激情| 26uuu国产| 99激情| 97干在线视频| 久9视频| 激情视频综合| 99∨VTV| 噜噜色噜噜网| 天堂AV在线看| 丁香五月婷婷乱| 色色色99韩| 国产色色在线| 成人视频一区| 99re视频在线播放| 婷婷五月色影视先锋| 天天网曰日曰夜夜综合永久免费| 91人无码久久久久久| 丁香婷婷五月色综合| 少妇真实被内射视频三四区| 婷婷五月天影院| 激情五月婷婷视频一区二区三区| 啪到高潮激情丁香五月| 五月丁香婷婷人体| 五月丁香激情深爱婷婷| 99亚洲欧洲| 五月天欧美激情| 字幕网AV中文字幕| 亚洲色五月| 淫视馆aV二区一区| 99色综合网| 激情久久综合| 久久99网站| 久久ab| 五月亭亭直播| 久久总和99| 亚洲激情av| 久久婷婷精品| 91色久| 俺去也婷婷| 欧美综合激情| www.亚洲激情.com| 综合色视频| 九月激情综合婷婷| 色综啪啪啪啪啪啪| 绿色小导航AV| 91色在线 | 日韩| 六月丁香六月婷婷欧美| 色五月色图| 97干97色| 婷婷五月天中文字幕.| www久久五月com| 婷五月天在线草| 一二三区视频韩国| 女人天堂 AV| 天天天天天天操| 超碰成人在线观看| 狠狠色噜噜狠狠狠888| 日本精品人妻无码77777| 五月婷婷色色爱| 在线视频激情网站| 久久人人九九| 九热久| 婷婷五月天国产精品| 伊人大香五月天| 玖玖精品资源| 99九九精品| 亚洲网站999| 婷婷天天色| 亚洲精品一区无码A片| 狠狠色综合图片| 午夜福利8055| 91九色精品女同系列| 亚洲第一黄网| 99热6这里之有精品| 五月天自拍视频| 丁香五月在线播放| 久久人人九| www.久久爱| 北条麻妃九九九国产精品视频| 超碰啪啪网| 骚五月婷婷| 亚洲性受XXXX五月丁香| 丁六月激情| 五月天激情小说欧美激情| 五月丁香啪啪啪啪| 开心激情站| 狠狠 久久| 91综合国免费久入| 久久只这里有精品| 婷婷五月激情六月| 国产成人亚洲综合A∨婷婷| 五月丁香色| 婷婷婷久久| 99热这里只有精品1025| 婷婷天天综合| 丁香六月婷婷姐网| 婷婷五月天亚洲| 大香蕉久久视频久久视频| 五月天婷婷激情在线色图| 激情五月天综合网| 婷婷丁香五月精品| 99这里| 精品久热| 国产成人亚洲综合亚洲| 五月六月播婷婷| 久久欧洲综合网| 91综合国免费久入| 婷婷大香焦| AV在线观看网站| 先锋资源 996| 婷婷五月天高清无码| 这里只有精品视频在线| 99热官网| 超级碰碰碰碰视频| 五月丁香视频在线观看| 五月婷婷五月天| 四虎国产精品永久在线国在线| 久久天堂精品| 色婷婷国色天香综合| 伊人五月综合网| 99精品视频在线观看| 亚洲成人网站在线播放| 婷婷丁香人妻| 婷婷伊人综合中文字幕| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 婷婷草| 人妻AV在线| 伦99热| 26UUU精品一区二区Com| 久草婷妨| 99网| 大香蕉天堂色| 五月婷婷在线视频免费观看| 丁香婷婷深情五月亚洲| 色婷婷激情| 91九色在线| 欧美中文五月天| 丁香8月手机综合| 色婷婷黄色网络| 日韩精品一区二区亚洲AV观看| 男同91 | 开心五月深爱五月婷| 99久久综合网| 五月天怕怕| 五月天精品综合| 欧美日韩成人在线| 色五月激情综合网| 99视频在线精品| 一起操最新网址| va婷婷在线| 婷婷五月天综合网| 丁香五月婷婷少妇| 狠狠色婷婷丁香六月| 激情综合久久| 五月丁香综合影院| 丁香五月五婷| 最近中文字幕2019视频1| 996热| www.色色五月天.com| 在线综合啪| 精品福利911| 中文字幕 中文字幕明步| 99re视频在线播放| 99精彩视频| 六月激情网| 精品免费99| 久久久全国免费视频| xxxx五月| 97色色色| 大香蕉婷婷丁香视频在线| 色婷婷小说网| 亚洲情欲久久| 五月婷婷九月婷婷九月婷婷| 男女啪啪做爰高潮无遮挡| 亚洲精品乱码久久久久99| www.五月天婷婷| 国产综合婷婷| 思思久久精品| 99玖玖视频| 国产精品香蕉| 99热10在线高清播放| 亚洲色vA| 激情五月综合网丁| 国产精品蜜臀99| 免费视频在线观看的网站| 91操操操| 99热免费| 欧美日韩大黄| 六月丁香网| 天天色综合色色色色色。| 五月婷婷啪啪| 色婷婷婷av| 91啪啪视频| 婷婷丁香五月天色区| 夜夜干夜夜操| 色情五月天小说| 色99视频| 激情婷婷内射| 在线视频你懂得| 四色永久成人网站| 色色五月丁香| 五月亚洲激情| 啪啪日热| 婷婷五月天亚洲图片| 亚洲综合碰| 色五狠狠| 99热在线看| 91久久| 91综合在线| 亚洲V国产V欧美V久久久久久| 激情五月婷婷网在线观看| 成人无码精品1区2区3区免费看| 激情校园 亚洲| 亚洲欧美综合7777色亭亭| 中文字幕乱轮| 色婷婷超碰| 日韩亚洲视频| 狠狠狠狠免费| 丁香五月-激情综合| 激情五月丁香综合网站| 高清成人综合| 91操熟女| 亚洲婷婷开心五月| 99热免费| 中国激情网| 色婷狠狠| 色碰碰| 五月丁香婷婷AV天堂| 99色综合久久| 五月天婷婷丁香基地在线观看| 中文字幕97超级碰| 五月婷婷色五月| 6月丁香婷婷激情| 色97啪啪| 久色大| 色噜噜狠狠色综| 亚洲中文字幕在线观看| 亚洲天码视频www蛋播视频| 99网址在线看| 久久HD| 婷婷色五月色| 亚洲色区17| 9久热免费视频99| 五月丁香六月欧美综合| 岛囯综合激情网| 色情五月综合婷婷| 免费99情趣网视频| 亚洲一区二区 成人网站戴套| 五月天色色婷婷| 色婷婷婷综合五月天| 国产AV网页| 婷婷五月天久久久| 99热这里只有精品13| 操婷婷久久| 狠狠干综合| 性生活久久朋友人妻| 五月天堂色| www。五月,com| 97操碰视频| 亚洲人人操BD| 五月香蕉网| 九九色影院| 激情深爱婷婷网| 黄色片avv| 五月婷婷色播| 丁香婷婷久久激情| 亚洲无码www| 99热这里只有精品22| 婷婷五月天av网| 丁香五月天AV在线 | 婷婷五月天综合中文| 五月丁香六月激情综合| 欧美日韩成人| 亚洲精品永久久久久久| 亚洲精品乱码久久久久99| 婷婷五月a| 久久综合99| 五月天丁香成人| 丁香五月在线观看综合| 五月丁香婷草| 日韩av手机在线观看| 91久热| 五月丁香婷婷激情视频| 色色色777| 婷婷午夜综合| 男同91 | 吊色AV男人的天堂| 色色欧美色色色| 九色视频91疯狂| 五月婷婷六月婷| 思思99热在线| 五月色亚洲| 欧美婷婷色| 超碰人人在线| 婷婷五月综合体验看| 69午夜成人影片| 久久婷婷色情7777网站| 特黄三级又爽又粗又大| 操操国产| 色婷婷亚洲六月婷婷中文字幕| 婷婷中文字幕版| 国产激情视频在线观看| 六月丁香激情| 婷婷色色网站| 另类图片五月天| 日本在线视频www色| 热热久久久久久久久| 91久久久久久| 超级碰碰91| 九九九九中文字幕| 性做爰A片免费视频A片直播| 99热66| 色热久|