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

ARTICLE DETAIL

資訊詳情

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

卡盟系統(tǒng)源碼搭建與API對(duì)接實(shí)戰(zhàn):主站、分站、商戶自動(dòng)發(fā)貨鏈路解析

卡盟系統(tǒng)源碼搭建與API對(duì)接實(shí)戰(zhàn):主站、分站、商戶自動(dòng)發(fā)貨鏈路解析 簡(jiǎn)介這是面向卡盟與自動(dòng)發(fā)卡平臺(tái)運(yùn)營(yíng)者的運(yùn)營(yíng)級(jí)源碼包按主站、SUP管理端、商戶端三個(gè)模塊分區(qū)對(duì)接寶塔API后可秒搭建主站并自動(dòng)開(kāi)通分站顯著減少人工操作適合有一定服務(wù)器基礎(chǔ)、希望快速落地卡盟業(yè)務(wù)的站長(zhǎng)或二次開(kāi)發(fā)者。包內(nèi)共1801個(gè)文件壓縮包約35MB以PHP后端邏輯、JS與CSS前端交互、PNG/GIF/JPG圖片素材、SQL數(shù)據(jù)庫(kù)備份及HTML頁(yè)面為主站點(diǎn)目錄按模塊拆分便于部署、替換和二次開(kāi)發(fā)。當(dāng)前已有128人次學(xué)習(xí)下載。除完整源碼外還包含寶塔環(huán)境下的安裝、偽靜態(tài)和數(shù)據(jù)庫(kù)配置說(shuō)明同時(shí)整理了作者對(duì)接寶塔接口與排查異常時(shí)的經(jīng)驗(yàn)?zāi)軒椭褂谜弑荛_(kāi)常見(jiàn)部署坑點(diǎn)。由于支付通道尚未接入拿到后可根據(jù)業(yè)務(wù)自行對(duì)接支付或?qū)で笞髡邊f(xié)助整體適合作為卡盟平臺(tái)快速起盤或源碼架構(gòu)學(xué)習(xí)參考。1. 卡盟系統(tǒng)源碼的底牌三層身份、兩套 API、一條自動(dòng)發(fā)貨鏈路第一次拿到號(hào)稱「運(yùn)營(yíng)級(jí)」的卡盟系統(tǒng)源碼時(shí)多數(shù)人會(huì)被文件列表嚇住主站一套、SUP 分站一套、商戶端一套外加幾十個(gè)接口文件。這套東西真正的核心并不在界面而在「主站—分站—商戶」三者之間的 API 對(duì)接鏈路上??讼到y(tǒng)本質(zhì)上是一個(gè)虛擬商品自動(dòng)發(fā)貨平臺(tái)商戶通過(guò)接口把卡密批量喂給主站用戶下單后系統(tǒng)自動(dòng)扣庫(kù)存、自動(dòng)把卡密返回給買家全程沒(méi)有人工參與。讀懂了這條鏈路你才能判斷這套源碼值不值、怎么搭、坑在哪。這篇筆記寫給正在評(píng)估或接手這類系統(tǒng)的開(kāi)發(fā)者按「理關(guān)系 → 秒搭建 → 寫對(duì)接 → 躲坑」的順序把運(yùn)營(yíng)前必須打通的技術(shù)環(huán)節(jié)全部過(guò)一遍。2. 先把角色關(guān)系理清楚SUP 分站、商戶和主站各管什么2.1 三層身份各歸其位主站管貨與賬分站管人商戶管貨源卡盟系統(tǒng)最常見(jiàn)的形態(tài)是三套程序配合使用這也是標(biāo)題里把「SUP 商戶」并列的原因。主站是平臺(tái)本身持有全部商品庫(kù)和卡密庫(kù)存用戶在主站下單付款后系統(tǒng)從庫(kù)存里取卡密、加密存庫(kù)、按需解密返回。SUP 分站是一套獨(dú)立的分銷站點(diǎn)程序它可以不存卡密而是通過(guò)主站開(kāi)放的 API 拉取商品列表、同步價(jià)格、提交訂單用戶付款后由主站完成發(fā)貨分站只負(fù)責(zé)流量和訂單展示。商戶則是供貨角色手里有卡密批發(fā)資源通過(guò)主站開(kāi)放的商戶接口批量上傳卡密、查詢剩余庫(kù)存、下架失效卡密。這三個(gè)角色很多人一開(kāi)始繞暈其實(shí)一句話就能理順主站是數(shù)據(jù)中心和發(fā)貨中心分站是面向買家的前臺(tái)代理商戶是上游貨源。運(yùn)營(yíng)級(jí)源碼和普通單機(jī)發(fā)卡網(wǎng)最大的區(qū)別就是這三層之間的數(shù)據(jù)不是靠人工搬運(yùn)而是靠 API 實(shí)時(shí)同步。分站能看到什么商品、什么價(jià)格由主站接口返回用戶是否已支付由支付回調(diào)驅(qū)動(dòng)主站發(fā)貨分站再通過(guò)訂單查詢接口拿到結(jié)果。理解了這個(gè)模型后面所有配置和代碼都是有據(jù)可循的。2.2 為什么 API 對(duì)接是這套源碼的命脈程序接口發(fā)貨 vs 手動(dòng)發(fā)卡對(duì)比一下傳統(tǒng)手動(dòng)發(fā)卡和 API 自動(dòng)發(fā)貨的區(qū)別就能明白「對(duì)接」這兩個(gè)字為什么被反復(fù)強(qiáng)調(diào)。手動(dòng)發(fā)卡的流程是后臺(tái)看到訂單 → 復(fù)制卡密 → 私聊或者系統(tǒng)消息發(fā)給買家 → 手工標(biāo)記已發(fā)。單量一上來(lái)這一步根本扛不住漏發(fā)、重發(fā)、客服扯皮全是成本。API 自動(dòng)發(fā)貨的流程則是用戶付款 → 支付回調(diào)觸發(fā)主站腳本 → 事務(wù)內(nèi)扣庫(kù)存并取出卡密 → 解密 → 返回給頁(yè)面或分站 → 分站展示給買家全程分鐘級(jí)指令完成不需要人盯。對(duì)比維度手動(dòng)發(fā)卡API 自動(dòng)發(fā)貨發(fā)貨時(shí)效分鐘到小時(shí)級(jí)支付回調(diào)后秒級(jí)庫(kù)存同步人工核對(duì)易超賣數(shù)據(jù)庫(kù)條件更新防超賣分站支持無(wú)法多站共用庫(kù)存一套庫(kù)存多分站同步人工成本每單都要人只在售后和補(bǔ)貨時(shí)介入這也是標(biāo)題里「沒(méi)有人工參與」和「卡密加密存儲(chǔ)」兩個(gè)詞對(duì)應(yīng)的技術(shù)實(shí)質(zhì)。做到?jīng)]有人工參與靠的是接口鏈路健全商品同步接口、下單接口、發(fā)貨接口、訂單狀態(tài)查詢接口缺一不可。做到卡密加密存儲(chǔ)則是因?yàn)榭茉穆涞綌?shù)據(jù)庫(kù)后一旦數(shù)據(jù)庫(kù)被拖走就全盤泄露運(yùn)營(yíng)級(jí)方案至少要保證卡密字段以密文形式存在只在發(fā)貨那一刻解密返回。2.3 源碼常見(jiàn)形態(tài)與選型PHP 老程序?yàn)橹飨瓤醇用茉僬劧_(kāi)市面上能買到的卡盟系統(tǒng)源碼絕大多數(shù)是 PHP MySQL 的老程序ThinkPHP 3.x/5.x 或原生 PHP 寫的都非常常見(jiàn)。為什么都老因?yàn)檫@類系統(tǒng)的核心邏輯簡(jiǎn)單、穩(wěn)定沒(méi)必要追新框架而且跑在虛擬主機(jī)或低配 VPS 上老框架兼容性最好。選型時(shí)先看幾件事第一偽靜態(tài)規(guī)則是否自帶Nginx 下很多程序默認(rèn)不支持 pathinfo不配好偽靜態(tài)后臺(tái)直接白屏第二數(shù)據(jù)庫(kù)字符集是否為 utf8mb4否則用戶提交一些特殊符號(hào)會(huì)報(bào)錯(cuò)第三后臺(tái)是否支持模板自定義這決定了你后續(xù)改首頁(yè)的成本第四接口簽名算法到底是什么有的源碼寫死 MD5 拼接有的支持自定義鹽值這會(huì)直接影響分站對(duì)接的難易。拿到源碼后的第一個(gè)動(dòng)作不是上傳服務(wù)器而是先解壓看結(jié)構(gòu)。找到 install 或安裝說(shuō)明目錄確認(rèn)有沒(méi)有安裝向?qū)z查有沒(méi)有 ionCube 或 Zend Guard 加密過(guò)的文件這類文件在 PHP 8 下大概率跑不起來(lái)需要裝匹配版本的 loader。加密文件不影響常規(guī)搭建但會(huì)嚴(yán)重影響二開(kāi)——你改不了加密段落的邏輯只能繞。所以評(píng)估源碼時(shí)我的習(xí)慣是優(yōu)先看application或libs目錄里有沒(méi)有大段可讀的 PHP 源碼有這個(gè)基礎(chǔ)后續(xù)接 API、改回調(diào)才有操作空間。3. 秒搭建主站是第一步環(huán)境檢查、數(shù)據(jù)庫(kù)導(dǎo)入與后臺(tái)登錄的完整路徑3.1 環(huán)境準(zhǔn)備PHP 版本、運(yùn)行目錄與擴(kuò)展的前置檢查「秒搭建」的前提是環(huán)境一次到位。這類老 PHP 程序我一般建議跑在 PHP 7.4而不是 5.6 或 8.x。PHP 5.6 對(duì)老代碼兼容性最好但已停止維護(hù)安全風(fēng)險(xiǎn)高PHP 8 則砍掉了很多老寫法比如preg_replace的/e修飾符、each()函數(shù)拿 PHP 8 去跑老源碼大概率裝完就是白屏。PHP 7.4 是折中老函數(shù)都還在性能也夠用。動(dòng)手之前先按下面這段命令檢查環(huán)境缺什么補(bǔ)什么# 檢查 PHP 版本 php -v # 列出已加載的擴(kuò)展重點(diǎn)看 curl、mbstring、pdo_mysql、openssl php -m | grep -E curl|mbstring|pdo_mysql|openssl # 檢查 ionCube loader 是否已安裝源碼有加密文件時(shí)必須 php -v | grep -i ioncube # 如果用的是寶塔面板手動(dòng)確認(rèn) PHP 版本和擴(kuò)展 # /www/server/php/74/bin/php -m命令邏輯很簡(jiǎn)單先確認(rèn)版本是 7.4再確認(rèn)四個(gè)擴(kuò)展都在缺哪個(gè)就去面板或包管理器安裝最后看 ionCube源碼里如果存在_defaults.inc.php這類看不出內(nèi)容的文件基本就是加密了沒(méi)有 loader 會(huì)直接白屏或提示「eval()’d code」。參數(shù)上注意一點(diǎn)PHP 7.4 的 ionCube loader 版本至少要支持 v11 加密loader 太老會(huì)直接拒絕執(zhí)行。3.2 導(dǎo)入數(shù)據(jù)庫(kù)與修改配置安裝向?qū)Р皇侨f(wàn)能的環(huán)境就緒后把源碼傳到站點(diǎn)根目錄。很多源碼帶/install安裝向?qū)гL問(wèn)域名后按界面填數(shù)據(jù)庫(kù)信息就行。但也有相當(dāng)一部分源碼是「綠色版」沒(méi)有安裝向?qū)Щ蛘呦驅(qū)Ь褪莻€(gè)擺設(shè)真正決定死活的是手動(dòng)導(dǎo)入 SQL 和改配置文件。下面這段是手動(dòng)方式的標(biāo)準(zhǔn)操作# 解壓源碼到站點(diǎn)目錄 unzip kaming_source.zip -d /www/wwwroot/kaming/ # 給程序運(yùn)行目錄寫權(quán)限緩存、日志、上傳目錄 chmod -R 755 /www/wwwroot/kaming/ chmod -R 777 /www/wwwroot/kaming/runtime/ chmod -R 777 /www/wwwroot/kaming/upload/ # 創(chuàng)建數(shù)據(jù)庫(kù)并導(dǎo)入 SQL mysql -uroot -p --default-character-setutf8mb4 -e CREATE DATABASE IF NOT EXISTS kaming DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; mysql -uroot -p kaming --default-character-setutf8mb4 /www/wwwroot/kaming/install/kaming.sql逐條解釋一下。第一條是標(biāo)準(zhǔn)解壓注意 zip 包內(nèi)部的目錄層級(jí)有時(shí)候解壓出來(lái)是嵌套目錄需要把文件挪到站點(diǎn)根目錄而不是帶一層子目錄直接訪問(wèn)。第二條是權(quán)限r(nóng)untime和upload目錄必須可寫否則報(bào)緩存寫入失敗、上傳失敗。第三條用--default-character-setutf8mb4是為了避免導(dǎo)入時(shí)中文亂碼。導(dǎo)入完成后再去改配置文件常見(jiàn)位置是根目錄config.php、data/database.php、application/database.php三個(gè)候選找那個(gè)定義了DB_HOST、DB_NAME、DB_PWD的文件改成實(shí)際的數(shù)據(jù)庫(kù)名和密碼。改完配置后務(wù)必清掉緩存目錄再訪問(wèn)否則程序讀的還是舊緩存配置。這一步也是「秒搭建」翻車的高發(fā)區(qū)數(shù)據(jù)庫(kù)導(dǎo)入成功了配置也改了后臺(tái)還是白屏最后發(fā)現(xiàn)是runtime緩存沒(méi)清。3.3 偽靜態(tài)與后臺(tái)設(shè)置登錄前先把兩處藏起來(lái)的配置找到ThinkPHP 架構(gòu)的卡盟系統(tǒng)站點(diǎn)運(yùn)行目錄通常不是根目錄而是/public。如果你配置站點(diǎn)時(shí)把根目錄指到了源碼根目錄前臺(tái)可能只有一個(gè)難看的首頁(yè)或直接 404。正確做法是在站點(diǎn)配置里將運(yùn)行目錄指定到public然后配偽靜態(tài)。Nginx 下常見(jiàn)規(guī)則如下server { listen 80; server_name kaming.example.com; root /www/wwwroot/kaming/public; index index.php index.html; location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s$1 last; } } location ~ \.php$ { fastcgi_pass unix:/tmp/php-cgi-74.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; } }這段配置里rewrite負(fù)責(zé)把不存在的文件路徑轉(zhuǎn)給index.php處理fastcgi_param PATH_INFO是 ThinkPHP 路由解析的關(guān)鍵。漏掉PATH_INFO的典型癥狀是首頁(yè)能開(kāi)但商品詳情頁(yè)和后臺(tái)都是白屏或 404。偽靜態(tài)配好后找后臺(tái)入口。常見(jiàn)的有/admin、/admin.php、/system、/guanli如果在源碼里翻不到就看route.php或README里的說(shuō)明。登錄后臺(tái)后第一件事不是看數(shù)據(jù)而是三件事改管理員密碼、關(guān)閉安裝目錄、配置支付回調(diào)域名。支付回調(diào)域名必須是外網(wǎng)能訪問(wèn)的域名不能用 IP微信和支付寶的回調(diào)會(huì)直接拒絕 IP 形式的回調(diào)地址。這一步做完主站才算「能賣貨」剩下的核心工作全部集中在 API 對(duì)接上。4. 對(duì)接 API 才是運(yùn)營(yíng)級(jí)的分水嶺簽名、鑒權(quán)與自動(dòng)發(fā)貨接口的實(shí)現(xiàn)細(xì)節(jié)4.1 對(duì)接前先捋清四件事接口域名、密鑰、商品映射、卡密返回方式主站跑起來(lái)只算完成了一半真正讓它和 SUP 分站、商戶系統(tǒng)聯(lián)動(dòng)的是 API。對(duì)接前先把四件事確認(rèn)清楚能少走一半彎路。第一件事是接口域名。主站和分站之間的所有請(qǐng)求都走 HTTP 接口接口域名必須是 HTTPS否則瀏覽器混合內(nèi)容和回調(diào)報(bào)文會(huì)被安全策略擋掉。第二件事是密鑰。主站后臺(tái)一般會(huì)給每個(gè)分站或商戶分配一組 AppKey 和 AppSecret分站配置里填的就是這兩個(gè)值簽名算法基于 AppSecret 生成。第三件事是商品映射。分站從主站拉取商品后每個(gè)商品對(duì)應(yīng)一個(gè)主站商品 ID分站下單時(shí)必須把這個(gè) ID 原樣傳回否則主站不知道你這個(gè)訂單買的是什么。第四件事是卡密返回方式。運(yùn)營(yíng)級(jí)做法是主站只在發(fā)貨接口里返回解密后的卡密分站拿到后自己加密存儲(chǔ)、展示時(shí)再解密而不是讓卡密在主站和分站之間明文傳輸。這四件事在接不同源碼時(shí)名字可能不同有的叫「商品同步」有的叫「貨源對(duì)接」但本質(zhì)一樣。我一般會(huì)在動(dòng)手寫代碼之前先拿 curl 手工請(qǐng)求一次主站的商品列表接口確認(rèn)返回結(jié)構(gòu)和簽名要求再?zèng)Q定怎么寫對(duì)接層。4.2 簽名與鑒權(quán)函數(shù)MD5 排序簽名 時(shí)間戳防重放的 PHP 實(shí)現(xiàn)這類系統(tǒng)主站與分站之間最通用的鑒權(quán)方式是「簽名校驗(yàn)」雙方約定同一個(gè) AppSecret請(qǐng)求方把所有業(yè)務(wù)參數(shù)按字典序排序、拼接成字符串后做 MD5服務(wù)端以同樣方式計(jì)算并比對(duì)。為了防止重放攻擊簽名里通常要帶走timestamp服務(wù)端只接受時(shí)間差在一定范圍內(nèi)的請(qǐng)求。下面這套簽名函數(shù)是大多數(shù)卡盟源碼的通用寫法可以直接落地?php /** * 生成簽名 * param array $params 業(yè)務(wù)參數(shù)不含 sign * param string $appSecret 雙方約定的密鑰 * return string */ function makeSign(array $params, string $appSecret): string { // timestamp 字段必須參與簽名 ksort($params); $str urldecode(http_build_query($params)) . $appSecret; return md5($str); } /** * 服務(wù)端校驗(yàn)簽名 * param array $params 收到的全部參數(shù)含 sign * param string $appSecret 后臺(tái)分配給該分站的密鑰 * return bool */ function verifySign(array $params, string $appSecret): bool { if (empty($params[sign]) || empty($params[timestamp])) { return false; } // 時(shí)間戳超過(guò) 600 秒直接拒絕防止重放 if (abs(time() - intval($params[timestamp])) 600) { return false; } $sign $params[sign]; unset($params[sign]); return makeSign($params, $appSecret) $sign; }邏輯說(shuō)明ksort先把參數(shù)按鍵名升序排列http_build_query生成a1b2這樣的查詢串再拼接AppSecret做 MD5。這里有個(gè)隱藏坑——http_build_query默認(rèn)會(huì)把特殊字符做 URL 編碼而有的源碼里對(duì)接方用 Java 或 Python 生成的簽名串不做編碼兩邊算出來(lái)的 MD5 完全不一樣。所以代碼里我特意加了一層urldecode把編碼后的串還原成原始格式再拼接這是解決跨語(yǔ)言簽名不一致最常見(jiàn)的辦法。參數(shù)說(shuō)明timestamp必須是服務(wù)端生成簽名時(shí)的時(shí)間單位秒不能每個(gè)接口動(dòng)態(tài)生成校驗(yàn)端把差值放寬到 600 秒是為了容忍分站服務(wù)器和主站服務(wù)器的時(shí)鐘誤差生產(chǎn)上配 300 秒也可以但別設(shè)成 0。另一個(gè)容易忽略的點(diǎn)是加簽名的字段到底包不包括sign本身這條函數(shù)里先unset($params[sign])再重新計(jì)算確保簽名只覆蓋業(yè)務(wù)參數(shù)。4.3 發(fā)貨接口與庫(kù)存扣減事務(wù)與解密返回的邊界簽名校驗(yàn)通過(guò)后核心邏輯是發(fā)貨接口。主站收到分站的訂單請(qǐng)求后要完成驗(yàn)簽 → 查商品 → 事務(wù)內(nèi)扣庫(kù)存 → 取出卡密 → 解密 → 返回結(jié)果。這里最怕的是并發(fā)場(chǎng)景下超賣所以庫(kù)存扣減不能用「先 SELECT 再 UPDATE」的老思路必須寫成條件更新。下面這段是一個(gè)可運(yùn)行的實(shí)現(xiàn)骨架?php // 假設(shè)已通過(guò) verifySign 校驗(yàn)$params 含 product_id、buy_num、order_sn try { $pdo-beginTransaction(); $productId intval($params[product_id]); $buyNum intval($params[buy_num]); // 條件更新只有剩余庫(kù)存足夠時(shí)才扣減防止超賣 $sql UPDATE products SET stock stock - :num WHERE id :id AND stock :num; $stmt $pdo-prepare($sql); $stmt-execute([:num $buyNum, :id $productId]); if ($stmt-rowCount() 0) { throw new Exception(庫(kù)存不足); } // 鎖定并取卡密后續(xù)操作期間不允許別的進(jìn)程拿到同一條 $sql SELECT id, card_secret FROM cards WHERE product_id :pid AND status 0 LIMIT :num FOR UPDATE; $stmt $pdo-prepare($sql); $stmt-execute([:pid $productId, :num $buyNum]); $rows $stmt-fetchAll(); $cards []; foreach ($rows as $row) { // card_secret 存的是 AES 密文解密后返回 $cards[] aesDecrypt($row[card_secret], SECRET_KEY); // 標(biāo)記為已售出 $pdo-prepare(UPDATE cards SET status 1, order_sn ? WHERE id ?) -execute([$params[order_sn], $row[id]]); } $pdo-commit(); echo json_encode([code 200, cards $cards]); } catch (Throwable $e) { $pdo-rollBack(); echo json_encode([code 500, msg $e-getMessage()]); }關(guān)鍵點(diǎn)拆開(kāi)說(shuō)。第一UPDATE ... WHERE stock :num是防超賣的核心數(shù)據(jù)庫(kù)行鎖會(huì)保證兩個(gè)并發(fā)請(qǐng)求只有一個(gè)更新成功rowCount()返回 0 就是庫(kù)存不足。第二SELECT ... FOR UPDATE在事務(wù)內(nèi)鎖定卡密行避免兩個(gè)訂單同時(shí)取到同一條卡密。第三SECRET_KEY只存在主站服務(wù)端不下發(fā)到分站卡密在庫(kù)里以 AES 密文存儲(chǔ)只有發(fā)貨這一刻解密并直接返回給分站后續(xù)分站自己存儲(chǔ)時(shí)走的是分站自己的加密邏輯。參數(shù)上注意LIMIT :num在 MySQL 預(yù)處理里不能直接用占位符有的 PDO 版本會(huì)報(bào)語(yǔ)法錯(cuò)誤穩(wěn)妥做法是先查status 0的 ID 列表再按數(shù)量array_slice后逐條更新。另外事務(wù)里不要做外部 API 調(diào)用比如把發(fā)貨結(jié)果同步給第三方這種動(dòng)作一定要放到事務(wù)提交之后否則事務(wù)鎖會(huì)拖著遠(yuǎn)程請(qǐng)求把數(shù)據(jù)庫(kù)連接池打爆。這套發(fā)貨接口寫對(duì)了「沒(méi)有人工參與」才真正成立分站下單、主站扣庫(kù)存、返回卡密三個(gè)動(dòng)作一條鏈路全自動(dòng)完成。5. 避坑指南從 401 到庫(kù)存超賣運(yùn)營(yíng)期最常見(jiàn)的 5 個(gè)翻車點(diǎn)5.1 接口返回 401 / invalid signature兩邊密鑰一致問(wèn)題往往在時(shí)間戳和編碼現(xiàn)象分站后臺(tái)配置好主站接口后測(cè)試同步商品或下單時(shí)一直報(bào) 401 或invalid signature兩邊核對(duì) AppSecret 完全一致。原因絕大多數(shù)情況下不是密鑰錯(cuò)了而是簽名串不一致。最常見(jiàn)的有三種一是分站服務(wù)器和主站服務(wù)器時(shí)間偏差太大簽名里的timestamp差出十幾分鐘被服務(wù)端判定過(guò)期二是跨語(yǔ)言對(duì)接時(shí) URL 編碼規(guī)則不同Java 的URLEncoder會(huì)把空格編成PHP 的http_build_query編成%20MD5 結(jié)果完全不同三是服務(wù)端驗(yàn)簽函數(shù)要求簽名字段必須嚴(yán)格小寫而分站生成的是大寫。解決先在分站側(cè)打印出完整的請(qǐng)求參數(shù)和簽名串再去主站接口日志里看服務(wù)端收到的原始參數(shù)和它自己計(jì)算的簽名逐項(xiàng)對(duì)比。時(shí)間差問(wèn)題把服務(wù)端校驗(yàn)窗口放寬到 600 秒編碼問(wèn)題統(tǒng)一在拼接前做一次urldecode兩邊的中間態(tài)保持一致大小寫問(wèn)題在驗(yàn)簽函數(shù)末尾加strtolower($sign) strtolower($expected)兜底。5.2 卡密加密存儲(chǔ)后取不出來(lái)AES 解密失敗先查 base64 與編碼現(xiàn)象商戶通過(guò)接口批量上傳的卡密用戶下單后看到發(fā)貨內(nèi)容是空的或一長(zhǎng)串亂碼后臺(tái)手動(dòng)查看卡密也是亂碼。這個(gè)坑在折騰「卡密加密存儲(chǔ)」方案時(shí)幾乎必踩。原因加密和解密用的編碼不統(tǒng)一。一種情況是加密時(shí)用base64_encode(openssl_encrypt(...))入庫(kù)解密時(shí)卻直接用原始密文解密另一種是密鑰文件里有換行符SECRET_KEY變量取到的是帶\n的字符串和加密時(shí)用不一致導(dǎo)致解密失敗。更隱蔽的是有的源碼在寫入數(shù)據(jù)庫(kù)時(shí)把密文做了addslashes轉(zhuǎn)義取出來(lái)時(shí)沒(méi)有用stripslashes還原。解決統(tǒng)一約定入庫(kù)前base64_encode密文出庫(kù)后base64_decode再解密密鑰從配置文件讀取后執(zhí)行trim()去掉首尾空白。檢查流程上寫個(gè)小腳本把庫(kù)里某一條密文取出來(lái)按「base64 解碼 → 解密 → 轉(zhuǎn) utf8」順序跑一遍任何一步報(bào)錯(cuò)就順著打日志確認(rèn)是哪一層壞了。加密這件事解決好了數(shù)據(jù)庫(kù)被拖走也只是拿到一堆密文。5.3 秒搭建后后臺(tái)白屏偽靜態(tài)未啟用或 PHP 版本不匹配現(xiàn)象按照安裝向?qū)ё咄昵芭_(tái)首頁(yè)能開(kāi)但后臺(tái)地址訪問(wèn)后白屏或一直 404。很多人懷疑源碼不完整其實(shí)是環(huán)境問(wèn)題。原因第一種是運(yùn)行目錄指錯(cuò)了ThinkPHP 老程序必須把站點(diǎn)運(yùn)行目錄指到/public指到根目錄就會(huì)出現(xiàn)首頁(yè)正常、內(nèi)部路由全掛第二種是 Nginx 沒(méi)配PATH_INFO導(dǎo)致路由參數(shù)全部丟失第三種是 PHP 版本太新老代碼用了each()、split()這類 PHP 8 已移除的函數(shù)直接fatal error白屏。解決按前面 3.3 的 Nginx 規(guī)則把偽靜態(tài)和PATH_INFO配好把 PHP 版本切到 7.4并開(kāi)啟 PHP 錯(cuò)誤顯示php.ini里設(shè)display_errors On和error_reporting(E_ALL)刷新后臺(tái)看具體報(bào)錯(cuò)。看日志是白屏排查的第一動(dòng)作不要憑空猜。5.4 庫(kù)存超賣先 SELECT 再 UPDATE 在大促必翻車現(xiàn)象100 張卡密賣了 120 單用戶付款后取不到卡密售后炸鍋。原因發(fā)貨腳本寫成了「先查詢剩余庫(kù)存再在 PHP 里判斷 if (stock 0)然后 UPDATE 減一」。這種寫法的窗口期很大兩個(gè)并發(fā)請(qǐng)求同時(shí)讀到 stock5都認(rèn)為庫(kù)存夠各自減一后數(shù)據(jù)庫(kù)里變成 3實(shí)際上已經(jīng)賣了 6 單其中 1 次沒(méi)有卡密可發(fā)。解決把扣庫(kù)存和檢查庫(kù)存合成一條 SQLUPDATE products SET stock stock - 1 WHERE id ? AND stock 0用rowCount()判斷是否真實(shí)扣減成功。所有涉及庫(kù)存變動(dòng)的邏輯必須放在事務(wù)里取卡密用SELECT ... FOR UPDATE鎖行。壓測(cè)驗(yàn)證方式見(jiàn)第 6 章這個(gè)測(cè)試不做完運(yùn)營(yíng)期第一個(gè)活動(dòng)日就會(huì)給你顏色看。5.5 分站下單成功但主站沒(méi)發(fā)貨回調(diào)域名限制與安全配置誤傷現(xiàn)象SUP 分站上用戶已完成支付分站訂單狀態(tài)也變成了已支付但主站后臺(tái)看不到對(duì)應(yīng)訂單或者訂單狀態(tài)一直停留在待發(fā)貨。原因兩個(gè)方向的誤傷。一是主站端在 API 層做了域名校驗(yàn)或 IP 白名單只允許指定來(lái)源的請(qǐng)求分站服務(wù)器的出口 IP 不在白名單里請(qǐng)求被靜默攔截二是分站服務(wù)器用 curl 請(qǐng)求主站時(shí)使用了 HTTPS但主站證書(shū)鏈不完整或用了自簽證書(shū)curl 的 SSL 校驗(yàn)失敗后請(qǐng)求根本沒(méi)到達(dá)主站。解決在主站后臺(tái)的 API 配置里把分站域名加入白名單同時(shí)把分站服務(wù)器的公網(wǎng)出口 IP 也加進(jìn)去分站側(cè)調(diào)用主站接口的代碼里生產(chǎn)環(huán)境用完整證書(shū)鏈內(nèi)網(wǎng)調(diào)試可以臨時(shí)把verify_peer和verify_host關(guān)掉但上線前必須恢復(fù)。驗(yàn)證方法很簡(jiǎn)單在主站訪問(wèn)日志里 grep 分站的請(qǐng)求記錄如果完全沒(méi)有記錄就是被擋在前面有記錄但報(bào) SSL 錯(cuò)誤則走證書(shū)修復(fù)。6. 把「秒搭建」真正用起來(lái)一套可復(fù)用的備份遷移與對(duì)接驗(yàn)證流程「秒搭建」如果只發(fā)生在第一次裝上意義不大真正常態(tài)化的價(jià)值是故障時(shí)能快速換機(jī)、遷移、恢復(fù)。所以我會(huì)在投入運(yùn)營(yíng)前做一套自己的標(biāo)準(zhǔn)流程每次換服務(wù)器都照著跑二十分鐘收工。備份方面我的習(xí)慣是同時(shí)備份三樣?xùn)|西數(shù)據(jù)庫(kù)、源碼、配置文件里的密鑰。數(shù)據(jù)庫(kù)用mysqldump --single-transaction導(dǎo)出源碼直接tar打包排除runtime緩存目錄密鑰單獨(dú)放一份在本地密碼管理器里不放服務(wù)器。遷移到新服務(wù)器時(shí)的順序是導(dǎo)入 SQL → 上傳源碼 → 改數(shù)據(jù)庫(kù)配置 → 清runtime緩存 → 配偽靜態(tài) → 驗(yàn)證后臺(tái)登錄 → 跑一次真實(shí)下單流程。很多人在換服務(wù)器后卡在「后臺(tái)能開(kāi)分站卻連不上」就是因?yàn)槁┝嗽诤笈_(tái)重新生成 API 密鑰這一項(xiàng)。老密鑰如果已經(jīng)泄露遷移后務(wù)必統(tǒng)一重置否則舊地址還能繼續(xù)用等于白搬。對(duì)接驗(yàn)證流程必不可少上線前用下面兩條命令跑通# ① 模擬分站請(qǐng)求商品列表接口注意替換域名、密鑰、時(shí)間戳 curl -s https://kaming.example.com/api.php?methodproduct_listapp_keyYOUR_KEYtimestamp$(date %s) -H sign: YOUR_SIGN # ② 用 AB 壓測(cè)下單接口驗(yàn)證庫(kù)存不超賣 ab -n 100 -c 10 -p order_data.json -T application/json https://kaming.example.com/api.php?methodorder_create第一條命令驗(yàn)證簽名鏈路是否通第二條命令驗(yàn)證并發(fā)下庫(kù)存扣減是否準(zhǔn)確。壓測(cè)后去數(shù)據(jù)庫(kù)查stock 已售數(shù)量應(yīng)當(dāng)?shù)扔诔跏紟?kù)存多出來(lái)的就是對(duì)不上、有問(wèn)題。這套驗(yàn)證我每次對(duì)接新分站都要跑一遍簽名錯(cuò)誤、并發(fā)超賣、證書(shū)問(wèn)題基本都能在測(cè)試期暴露而不是等活動(dòng)上線后被用戶投訴。一個(gè)反復(fù)踩過(guò)才記住的教訓(xùn)簽名函數(shù)必須和對(duì)接方文檔一字不差地實(shí)現(xiàn)哪怕你覺(jué)得對(duì)方算法寫得蠢也別自作主張改排序規(guī)則密鑰和簽名邏輯一旦進(jìn)了代碼倉(cāng)庫(kù)就等于把后臺(tái)賬號(hào)密碼貼到了墻上。每個(gè)被 401 折磨到凌晨的對(duì)接夜最后查出來(lái)都是這些細(xì)節(jié)。這篇方案的每一處坑都希望你繞過(guò)去希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天色天天爽| 97色热| 人人操人| 丰满女老板BD高清A片| 色色网五月激情| 五月丁香六月婷婷啪啪| 在线91日韩| 99热99在线| 五月婷在线播放| 婷色人人狠| 久久婷婷色综合老司机| 国产成人综合亚洲| 亚洲1区| 天天狠狠干| 综合激情伊人影视在线| 天天操B| 色综合99无码| 日本精品人妻无码77777| 天天操夜夜爽| 天天操九九插| 九热在线这里有精品6| 91av视频在线观看最新网址| 欧美肉大捧一进一出免费视频| 五月天激情婷婷| 色婷婷呢狠禁久禁| 色5月婷婷| 六月婷久久| 天天综合网亚洲综合网| 六月丁香婷| 综合超碰熟| 青柠影视免费高清电视剧| 日日干日日| 丁香五月天欧美在线| 激情五月天婷婷直播| 激情五月九九九| 大地资源色婷婷视频在线| 九热...av| 五月激情站| 99热这里精| 六月婷婷五月丁香首页| 亚洲视频在线观看99| 欧美性久| www.色五月.com| 月丁香久久久| 伊人五月天久久| 双性美人被调教到喷水A片| 欧美色频| 九九在线精品| 中字幕视频在线永久在线观看免费| 日韩欧洲亚洲| 亚洲操操操| 色综合色五月| 久9热视频在线观看| 伊人久久大香线蕉AV最新午夜| 国产黄大片在线观看画质优化| 狠狠色婷婷7777久| 激情五月久久| 国产做爰视频免费播放| 91肏肏肏| 无码视频国内精品久久久| 成人欧美日韩| 天天狠天天叉| 国自产拍偷拍精品啪啪一区二区| 婷婷丁香激情五月天色色色| AV中文字幕夜夜操b天天摸bb | 国产精品婷婷午夜在线观看| 丁香六月天堂| 激情四射婷婷| 日本一级黄色电影| 超碰色热| 欧美性猛交99久久久99| 热99国产精品| 深爱五月天天| nvrentiantang av| 久久激情视频| 日本欧美成人片AAAA| 欧美成人精品A片免费一区99| 中文字幕在线免费看线人| 激情99| 日本久久天堂| 色色色精品无码区| 另类综合婷婷五月天欧美视频| 欧美性爱5月天天天看| 99视频一区| 丁香 婷婷 亚洲 熟女| 五月天另类图片| 日韩1区2区| 狠狠做婷婷| 67194中文字幕| 亚洲不卡欧洲| 丁香五月天大香蕉啪啪| 色你久久| 五月婷在线色视频| 日韩超碰在线| 亚洲网站观看视频| 五月丁香啪综合| 9+1视频网址| 天天爱天天做天天舔| 夜夜骑日日夜夜| 五月婷婷影| 91啪啪网| 激情涩播| 狠狠色97| 日本V在线观看不卡视频网站| 色综合天天综合成人网| 999婷婷综合| 色999亚洲人成色| 久热伊人| 五月丁香| 国产五月天婷婷| 91日综合欧美| www.久久| 婷婷五月天丁香花| 色999;丁香五月| 射琪琪| av婷婷六月丁香社区在线观看| 久久怡红院| 欧美伊人9| VfJxEwPH| 久久久久丁香婷婷五月天| 五月天婷爱综合| 激情五月天综合网站网站网站| 欧美va视频| www.五月天色色.com| 色婷婷综合在线| 中文字幕成人网站| 五月Huangsewang| 荫道BBWBBB高潮潮喷| 色色a| 激情五月视频在线婷婷| 日韩色五月| 五月天影院| 亭亭五月激情亚洲在线| www一区二区三区| 六月丁香激情婷婷| 九九热免费| 亚洲aV写真天天综合网久久| 最新va在线播放| 亚洲综合激情五月久久| 久久 婷婷 五月天| 99精品免费视频| 欧美操人| 国产真实乱对白精彩| 99国产精品久久久久久久久久久| 9精品久久999| 超碰色人妾| 成人一区在线观看| BT综合在线视频观看| 日本一级特黄大片AAAAA级| 亚卅毛片| 97碰啪啪| 热这里只有精| 亚洲九九九九| 看久久性爱99视频| 婷婷五月亚洲综合| 最近中文字幕大全免费版在线 | 91丨九色丨熟女| 九九人人精品| 五月婷婷丁香| 五月婷婷黄网站大全| 91怕怕网| 婷婷五月天久久久| 99热只有精品在线观看| 婷婷五月天激情在线| 亭亭五月天黑人2014| 中文字幕乱轮| 久久婷婷综合五月天| 五月丁香六月色| 狠狠精品干练久久久无码中文字幕 | 色婷婷五月天偷拍| 婷婷五月天伊人| 日本精品人妻无码77777| 亚洲三级无码| 超碰免费99| 五月丁香婷婷无码中文| 天天操天天操天天操天天操天天操天天操| 99狠狠色| 丝袜大香蕉| 色色色香蕉五月婷| 另类A片| 无码网| 婷婷五月丁香网| 操逼巨乳91| 五月激情小说网| 熟妇人妻中文字幕无码老熟妇 | 色婷婷久久| 高清a片基地| 久久伊人9| 亭亭丁香久久五月| 99色色| 99综合| 伊人久久婷婷五月综合97色| 亚洲无线视频| 永久地址 色| 色域五月婷婷丁香| 超碰色碰碰| 99九九在线观看免费| 人人人人人人人人人草| 综合色五月| 国产肥白大熟妇BBBB视频| 亚洲网站观看视频| 丁香五月亚洲激情婷婷射| 俺去也在线官网| 激情亭亭五月| 久久九久久| 青青草tp| 久热只有精品| 久久婷婷综合五月| 色性综合| 久久色亭亭五月天| 丁香五月婷婷影视先锋| 天天色综合色色色色色。| 色五月婷婷亚洲| 91超级碰| 97色婷婷成人综合在线观看| 激情五月天网| 丁香五月激情五月| 色五月婷婷五月久久| 亚洲乱码w在线观看| 强辱丰满人妻HD中文字幕| 婷婷五月天久久综合88| 色久五月天| 99精品免费| 人操人| 欧美狠狠草| 色偷偷综合| 国产肥白大熟妇BBBB视频| 9久久久久久久久久久| 伍月婷丁香花全集| 疯狂做受XXXX高潮A片动画| 婷婷操超碰| 天天爽天天做| 久久大国产香蕉| 天天舔天天插天天爱| 五月丁香婷婷综合网| 亚洲精品一区无码A片| 五月久久婷婷| 日本爆乳片手机在线播放| 婷婷99综合| 婷婷,五月天,丁香,第一| 色五月婷激情| 色五月婷婷777| 99色在线观看免费| 特级西西4444www无码| 婷婷狠狠操| 这里只精品热在线18| 色婷婷小说| 色婷| 思思久久精品| 丁香婷最新动态| 九九大香视频| 碰超99| 六月婷婷综合激情| 六月丁香中文字幕| 人妻激情在线| 丝袜人妻| 色五月婷婷五月| 4438成人电影| 人妻激情在线| 大香蕉婷婷色| 99亚州综合精品成人网| 久热精品视频在线观| 婷婷中文无码| 九九色婷婷| xxxx久| 99热插| 丁香五月天综合| 丁香av网| 成人AV中文字幕| 色色影院黄大片| 色婷婷婷婷五月天| 日韩美女羞羞网站在线观看| 婷婷六月激情| 亚洲熟女色| 五月婷婷丁香啪啪| 91美女被操| 色婷婷狠| 性色欲情 网站| 超碰在线国产| 亚洲人妻av| 天天插天天插天天插天天插| 久久黄色免费视频| 丁香8月手机综合| 激情五月天免费视频| 玖玖爱伊人网| 99热思思| 色婷婷视频| 丁香五月天堂| 色五月丁香五月婷婷五月成人网| 停停综合色色| 激情五月丁香五月| 五月人人丁香婷婷五月人人丁香| 99se丁香| 五月婷婷丁香| 精品一二三区久久AAA片 | 婷婷五月av| 亚洲avjiujiur91| 成人精品视频99在线观看免费| 久热这里精品免费| 99热日本精品| 91Chinese在线| 超碰99在线| 色色99| 久热精品视频| 五月天久久www| 老司机伊人| 99re这里只有精品国产99| 最近免费中文字幕大全高清大全1 色狠狠色噜噜AV天堂五区 | 午夜不卡成人一区二区| 丁香五月亚洲综合丝袜| 婷婷午夜综合| 三十路磁力链接| 日噜噜色| 五月激情六月综合| 色五月丁香六月婷婷| 欧美人人女女精品综合五月天| 久久xxxx| 欧美激情综合色综合| 色偷偷色婷婷| 全部老头和老太XXXXX| 五月丁香淫淫婷婷婷| 香蕉操亚洲| 99色色网| 99热成人精品网站| 五月夜丁香| 激情综合婷婷久久| 99久视频| 思思国产99| 久久视频婷婷视频| 久久九九99视频| 五月综合激情| www夜夜操wwwcon| 99热碰碰| 色色色激情网| 五月婷婷片| 五月天在线视频尤物视频在线看| 亚洲在线综合| 91人人人人人人人| 啪啪91| 五月婷婷官网色| www,8050,午夜三级| 欧美天堂婷婷日韩| 99爱这里只有精品免费视频| 亚洲精品性色| 婷婷五月四狠狠| 99ri6在线视频| www.日日夜夜.com| 九九精品免费| 丁香五月天激情综合网| 婷婷99| 91女人18毛片水多国产| 综合色色网| 天天透天天爱| 激情 婷婷 丁香五月天| 综合欧美五月婷婷| 丁香婷婷六月天| 99re8热精品免费视频| 91啪啪视频| 国产精品五月天婷婷| 五月婷婷干干干| 日韩AV中文字幕在线| 五月天激情网站| 棕合影院色色| 狠狠插狠狠插| 婷婷视频在线| 亚洲九九九九| 五月天婷婷午夜丁香| 操日本三片99| 伊人九九九久| 精品热九九| 九九碰九九爱97| 亚洲乱码w在线观看| 色色色欧美色色| 伊人婷婷青青cao| 丁香久月| 久久国产AV| 欧美成人AAA片一区国产精品| 91婷婷在线| 色色色综合色| 婷婷五月成人系列| 五月婷婷在线观看| 99成人无码| 九九热只有精品6| 久热黄色| 婷婷五月色影视先锋| 久99在线| 无毒黄色网址| 琪琪色网址| 粉嫩AV久久一区二区三区| 婷婷综合久久| 午夜丁香婷婷| 色噜噜婷婷| 色欲影香| 五月丁香激情四射| 亲子乱AV一区二区三区下载| 久久久.COM| 亚洲va综合va国产va中文| 久久少妇视频| 色色综合网络| 这里只有精品1| 五月天激情子轮| 深爱五月天天| 青草激情在线| 热成人网| 综合五月网| 99精品大片| 99热只有精| 26uuu亚洲欧美| 五月久久亚洲| 秋霞三及片| 99热在线观看免费| 丁香五月成人社区| 激情综合啪啪啪| 久热91| 偷拍91九色| 五月婷婷深深爱| 久久丝袜婷婷| 色五月激情综合网| 激情五月激情综合俺也去婷婷小说| 亚洲天堂99| 超碰成人电影| 蜜臀av无码久久久久久久久| 中文aV网| 久久这里只有精品无码| 久久久精品色色色| 婷婷中文字幕网| 五月色色网| 97色婷婷成人综合在线观看| 天天综合网在线| 五月丁香啪啪| 黄色中文字目| 九九热在线视频观看免费10| 99热爱爱干干日| 综合亚洲六月婷婷在线| 五月丁香婷婷久久| 婷婷五月天综合小说网| 97se视频在线| 天天久久狠狠色综合| 免费视频无码| 久久婷婷热| 国产69久久久欧美黑人A片 | www.91AV.com| 成人婷99最新| 五月丁香拍拍激情综合| 日韩在线aaa| 天天干天天操天天爽| 久久色天堂| 337p大胆噜噜噜噜噜91Av| 免看黄大片AA | 丝袜熟女一区二区三区| 超碰二区| 日本ww亚洲| 五月激情综合美女久久| 亚洲精品亚洲人成人网| 性做爰A片免费视频A片直播| 丁香五月123| 亚洲色综合| 激情五月深爱五月| 丁香婷婷六月在线资源观看| 六月婷婷激情图片| 婷婷5月久久综合网站| 欧美三级级99久久| 精品成人在线| 五月丁香六月婷婷久久肏| 色婷婷九月| 玖玖九九99| 日本色色网站| 亚洲妇女熟BBW| 亚洲午夜Av| 激情婷婷内射| 激情小说婷婷| 久久精品A片777777| 五月婷婷精品| 丁香五月大片| 色五月91| 婷婷五月丁香成人网| 1囯产午夜仑鲁鲁| www.色五月| 狠狠搞亚洲| 青青草激情网| 激情淫乱男女| 久久五月婷综合网| 久久六月天| 艹B高清无码| 久久人人超| WWW.桔色成人.COM| 亚洲a色| 中文字幕av久久爽| 另类五月婷婷| 99福利导航| 亚洲狠狠色丁香婷婷综合久久| 激情AV在线| 青青草婷婷综合五月| 五月丁香操婷逼| 狠狠ri| 91碰碰碰| 丁香五月天.com| 久爱综合| 少妇日麻屄| 久久婷五月综合| 熟妇人妻中文字幕无码老熟妇 | 人妻啪啪啪| 久久97| 六月丁香开心婷婷欧美| 日日天天操| 久久丁香五月婷婷| 色婷亚洲五月丁香| 久久激情五月网| 99操99| 1024手机在线观看看片_日韩精品| 色噜噜在线| 日韩啪啪视频| 五月婷久久| 日本婷婷| 激情九月婷婷九月| 久久这里只有精品07 | 激情伊人| www.99日本| 激情五月婷婷啪啪| 人妻丰满精品一区二区A片| 久久久香| 五月丁香色婷婷色| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 天天天久久久| 欧美日韩成人在线| 亚洲综合视频在线| 久久看婷婷| 少妇婷婷五月天| 色丁香影院| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 色色丁香婷婷| 殴美激情综合网| 亭亭玉月丁香| 成人在线观看一区| 99热这里只| 亚洲三A| 六月婷婷狠狠色在线观看| 婷香五月激情视频| 99热99ai| 五月婷婷无码| 丁香五月婷婷动漫| 51精品国自产在线| renrencaoav| 成人综合网站| 狠狠狠激情网| 五月美女婷婷风骚| 五月天婷婷视频30| 久久99草五月婷婷| 99热这里只有精品16| 五月天停婷基地| 婷婷亚洲久久| 婷婷五月天狠狠搞干| 日欧一片内射VA在线影院| 色9色| 风流少妇A片一区二区蜜桃| 91艹人| 国产国产乱老熟女视频网站97| 九九热在视频| 激情九月婷婷九月| 五月婷婷免费在线观看视频| 日韩美女羞羞网站在线观看| 日本美女上人| 五月婷婷xxx| 久久婷婷色| 九九综合精品| 九九色婷婷五月天| 五月婷婷亚洲| 日韩综合久久| 99视频这里有精品| RenRenSe在线视频网站| 有码一区二区三区| 五月天天天天天天天天天天天天天天天婷婷婷| 亚洲乱码w在线观看| 亚洲AV网址| 久热久| 五月天婷婷成人网| 久色五月| 丁香婷婷综合激情五月色| 另类专区在线| 九九激情网| 大香蕉手机视频| 久色五月婷婷综合| 大香蕉伊在| www.久久久.com| 电影爱拉战争免费观看| 97人人妻人人艹| www.夜夜操.com| 五月婷婷AV| 99精品在线| 五月丁香婷婷久久| 丁香六月婷婷社区| 五月激情六月丁香| 中文字幕婷婷五月天在线观看| 国产九九一区二区三区| 中文av网| 日日噜狠狠色| 色性综合| 色5月婷婷色| eeuus五月婷| 亚洲天堂色| 综合激情在线| 日韩激情人伦人| 影音先锋天天日| 五月天社区| 欧美激情综合色丁香婷婷五月天| 日韩激情网站| 无码人妻少妇色欲AV一区二区| 99av视频| 国产伊人五月天| 碰人人97| 亚洲成人综合在线| 久久婷婷五月| 密臀久久| 狠狠综合久久综合| 在线99热| 日本婷久久| 欧美毛片www| 天天综合五月天| 天天操夜夜操| 美女精品一级不卡视频| 婷婷深爱五月丁香网| 在线成人网址| www久久久久久久久久久| A在线观看| 天天爽天天透天天爱| 超碰在线中文字幕| 九九爱激情| 欧美在线干| 日日操,夜夜撸| 色五月婷婷av| www.99热精品99.com| 开心五月激情网| 天干天天干天天天天天| 婷婷五月综合久久中文字幕| 操操综合网婷婷| 五月婷婷色五月| 婷婷综合在线| 久99久热只有精品国产99| 欧美三级欧美一级| 激情国产五月| 欧美三级欧美一级| 综合久久五月天| 五月天开心色情网| 二色av| 人人妻人人澡人人爽| www.婷婷| 99re8这里只有精品99re8热视频| 五月天色区| 五月丁香色狠狠干大屄| 日本熟女视频一区二区| 視频福利乱色| 欧美日本不卡黄色片| 99色看| 五月丁香六月激情综合网| 99热欧美精品| 红桃91人妻爽人妻爽| 中文字幕无码人妻少妇免费视频| 五月天激情四射| 久久性爱视频这里只有精品| 99在线视频精品| 国产精品久久久99视频| 婷婷午夜精品久久久| 日本人妻久久| 五月婷无码| 婷婷99狠狠躁天天久久久九九九| 国产亚洲99久久精品| 玖玖五月丁香| 婷婷狠狠干| 先锋资源996| 伊人五月婷婷| 99精品视频免费在线播放| 9精品在线| 色婷狠狠| 五月色情| 9精品久久999| www.色五月| 99自拍视频在线观看| 九九婷婷网五月天| 99精品久久| 玖玖爱资源站| 97香蕉碰碰人妻国产欧美| 婷婷久久综| xxxx久| 操逼视频一区| 9久国产精品| 超碰色综合| www.色综合.com| 色五月天丁香婷婷| 色综合区| 丁香五月手机在线| 婷婷午夜| 熟女人妻视频| 色欲AVV| 色九月综合| 亚洲正能量欧美| 九热av| 亚洲精品网址| 超碰电影在线播放| 激情综合网五月婷婷| 激情综合色网| 丁香五月天欧洲在线| 婷婷综合中文字幕| 韩日另类| 韩国97天堂| 99热国产婷婷| 91偷拍视频| 熟女色专区| 无码G高清天| 精久久色| 激情五月五月婷婷| 日91高清无玛| 精品久久久人妻| 久久激情综合| 婷婷丁香色五月天| 91精品国产综合久久蜜芽解析速度| 丁香五月www| 另类图片激情五月| 成人在线视频网| 六月丁婷婷| 艾小青av| 六月天婷婷| www久久99| 极品少妇XXXX精品少妇偷拍| 波多婷婷久久| 九热久| 色婷婷五月天亚洲| 色综合综合色| 操逼巨乳91| 激情五月天社区| 国产精品第一国产精品| www.99热精品99.com| 99久热在线精品| 天天日夜夜高潮| 色五月首页| 欧美在线操| 成人无码精品1区2区3区免费看| 人碰人人人玩91| 婷婷激情人妻| 天天色伊人| 99爱视频在线观看这里只有精品| 久色网| 激情久久伊人| 久久刺激网| 26uuu国自产精品| 欧美久久婷婷| 日韩久久视频| 丁香情色五月| 色婷婷9| 婷婷色色播五月天| 天天干天天爽| 天天射影院| 久久超级碰视频| 青青夜夜狠狠夜夜狠狠| 可以看的AV| 丁香五月影院| 毛片蕉地一二| 99热国内| 免费AV在线| 亚洲情综合五月天| 狠狠色噜噜狠狠狠狠综合| 五月丁香成人版| 五月天激情久久| 秋霞少妇AV网站| 婷婷综合色图| 综合激情深爱| 思思热这里只有精品| 五月丁香A片| 色综合爽| 色播五月综合网| 91久久久久久久久久18| 欧美成人日韩| 开心色播色五月婷婷| 男女99免费视频| 日韩精品呦呦va| .操區COm| 久热AA| 日本人妻伦在线中文字幕 | 91日韩美女被插视频| AV美美午夜| www.色综合.com| 久久婷婷网址| 亚洲色五月天是什么| 色狠狠999综合| www.久久99精品| 色六月丁香婷婷狠狠干| 久久99网站| 九九热99在线视频| 久久这里只有精品视频26| 91精品婷婷国产综合久久| 亚洲午夜在线视频| 丁香六月AV| 99久.| 99热999| 久久网思思| 婷婷五月成人| 大香蕉七区| 久久久久人妻中文| 国产婷婷色综合AV蜜臀AV| 97干97色| 这里只有精品久久| 五月色情婷婷| 九九精品这里只有| 99国产在线| 亚洲AV第二区国产精品| 激情五月视频在线婷婷| 五月丁久久| 久久久久久久久久久久久久人妻视频| 色九九综合| 99a级片| 五月在线| 97操在线资源| 综合伊人狠狠| 六月天婷婷| 久久久久久久综合狠狠综合| 五月婷婷黄色| 五月停停色色丁香| 一级精品999WWW| 日本久久超碰| 精品亚洲VA网站| 99福利视频导航| 综合色色婷婷| 丁香五月天大香蕉啪啪| 美女激情婷婷| 成人亚洲精品久久久久| 成人午夜无码视频| 在线婷婷| 婷婷久久五月| 四色99久久| 色墦五月丁香| 丁香五月婷婷啪啪| 色欲久久久久久综合网综合网| 婷婷丁香18| 色色影院黄大片| 亚洲色网址| 婷婷五月丁香色播| 伊人9999| 一级内射毛片| 婷婷六月丁香欧美视频在线| 人妻激情网| 人妻久久久久久| 神马欧美精| 久久婷婷色综合| 国産精品| 久久久婷婷| av 一区三区四区| 九九无码| 国际国外精品欧洲南美洲专区无码不卡| 亚洲精品白浆高清久久久久久| 色五月丁香一区在线| 69超碰在线| 天天爱天天做综合| 99色热综合| 日日.c| 秋霞丝袜啪啪啪| 日本操碰碰| 啪啪色激情五月天| 国产毛片精品一区二区色欲黄A片| WWW五月天| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品 | sisi热国产| 成人在线二区| 丁香六月婷婷色XXXXX| 免费AV在线| 久久久久9999| 色五月av伊人| 天堂呦 呦百度搜索-百度搜索| 五月天婷婷色综合| 五月丁香中文婷婷中文| 超碰色综合| 五月婷婷激情综合在线| 91久久久久久久久久18| 99热免费在线| 亚洲永久免费| 少妇高潮呻吟A片免费看软件| 婷婷五月丁香六月天亚洲综合| 人人干人人操外国| 色九网| 日本色婷婷综合| 亚洲欧美成人在线观看| 日韩人妻无码精品| 六月丁香婷| 五月丁香婷婷五月色| 亚洲无码色| 这里都是精品99| 婷婷丁香六月天| 九九99香蕉在线视频播放| 天天舔天天插天天爱| 婷婷丁香九色| 亚洲激情综| 免费九九热| av在线婷婷| 丁香五月在线自慰| 另类图片 五月激情| ady狠狠入| 激情五月天婷婷| 深爱激情五月天婷婷网| 国产综合婷婷| 欧美搡BBBBB摔BBBBB| 五月婷婷中文| 天天天久久久| 九九精品婷| 亭亭玉月丁香| 另类小说激情五月天| 久热这里只精品| 天天综合区| 97福利视频| 激情五月天色婷婷| 久热婷婷| 日日操夜夜操中国无码| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | www.第四色99| 狠狠色狠狠操| 26uuu| 欧美va视频不用播放器的va视频网| 婷婷五月丁香激情图片 | 久久女人天堂| 9久热这里只有精品| 色播五月婷婷| 丁香花婷婷五月天| 色伦专区97中文字幕| 91碰超| 婷婷五月天另类网站| 99热超碰| 丁香六月综合激| 可以看的av| 激情五月婷| 五月天婷婷开心| 亚洲欧美成人在线| 欧美久久久久久久久中文字幕| 五月丁香综合| www999日韩精品| 狠狠操狠狠做| 六月丁香基地| 日本美女上人| 在线亚洲综合网| 操操啪| 欧洲亚洲精品| 丁香五月婷婷天激情| 婷婷爱在线观看| 久久新地此| 国产一级黄色影片,| www五月| 丁香五月激情网| 这里只有精品视频在线看| 久久婷婷六月| 婷婷五月激情图片| 一操久久| 99视频日韩| 激情文学综合婷婷五月天丁香花| 久久久ww| 99精品视频网| 色情综合网| 天天综合亚洲综合| 日本的α片xxxwww| 日本人妻A片成人免费看片| 超碰伊人碰婷婷五月| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 欧美Va婷色| 激情五月,激情综合网| 婷婷日| 天天舔天天插天天爱| 91操片| 五月丁香花视频| 97色视频网| 啪啪九九色| 操大屄五月天视频| 国产午夜成人免费看片无遮挡| 91色婷婷综合久久中文字幕二区| 99在线观看| 超碰人人操在线| 色色五月婷婷久久| 99在线免费观看| 国产精品VA在线| 五月婷婷六月丁香色| 五月香六月婷| 丁香九月婷婷色| 婷婷五月丁香久久| 色狠狠色狠狠| 区区欧美你爱| 丁香五月婷在线| 日本性激情色播| 精品一区二区三区木瓜| 激情二色月| 五月色情婷婷| 日韩欧美成人网| 91在线视频观看午夜福利| 天天色综网| 婷婷伊人五月天| 五月婷婷色在线| 亚洲九九视频| 色色亚洲| 婷婷五月天在线观看| 深爱五月天| 免费无码毛片一区二区A片| 国产精品99久久久久久久女警| 丰满人妻一区二区三区| 内射爽无广熟女亚洲| 欧美在线视频99| 91久久久久久久久18| 99视频内射三四| 99色婷婷| 六月激情网| 思思热在线观看| 全部老头和老太XXXXX| 五月婷婷爽爽爽| 97操碰人免费| 久久五月天 91| WWW色色色COM| 久久婷婷激情四射五月天| 草草影院爱爱| 综合久久综合| 天天做综合| 久久婷出差欧美色两性综合网| 六月丁香五月亭亭| 五月天停停成人网| 天天激情欧美美女| 97资源欧美日韩大香蕉超碰一区| 蜜臀av粉嫩av懂色av| 中文字幕在线播放视频| 色999五月色| 天天揷综合网| 免费操超碰| 婷婷综合色图| www.夜夜操.con| 五月丁香欧美综合免费视频| 五月激情婷婷六月| 婷婷五月天亚洲五码| 激情五月丁香五月| 色婷婷成人做爰A片免费看网站 | 天海翼中文字幕高| 97操在线资源| 色五月天堂| 色综合色综合色综合高潮| 九九无码视屏| 婷婷五月天网址| 丁香五月欧美| 99热在线极品极品| 婷婷婷久久久| 99热 在线观看| 激情五月婷婷丁香综合网| 免费播放片大片| 亚洲欧美成人在线| 色都都狠狠色都都色综合色| 久久久com| 五月丁香无码| 丁香五月色情| 亚洲AV成人无码精品| 五月激情啪啪啪| 日本激情五月天‘| 色啪影院| 九九爱精品网站| 欧美天天草人人草| 亚洲欧美999| 丁香五月天激情综合| 69人人操人人爽| 婷婷久久午夜网| 五月婷婷片| www.超碰| 婷婷六月色情| A一级操| www.操.com| 亚洲1区| 人人妻人人澡人人爽| 婷婷5月色| 五月婷婷在线视频观看| 色999五月色| 五月丁香婷婷激情四射迷人| 丁香蜜臀黄色婷婷五月天| 婷婷色5月激情网| 大香蕉综合网| 色综合久久无码| 很很操96| 99网99热| 久色| 婷婷99丁香| 五月色婷婷亚洲 | 狠狠爱综合| 91色碰| 天天做天天爱天天日| 开心五月激情网| www.91五月| 精品成人在线| 久久性爱视频| 日日操夜夜爽| 婷婷视频在线碰| 五月在线婷色| 日韩人妻在线观看| 久久婷婷综合色丁香| 五月婷婷精品视频| 天天日天天舔| 婷婷五月丁香啪啪| 亚洲五月花| 99超碰欧美| 久久婷五月综合色| 五月天桃色深爱网| 99九九综合久久九九| 婷婷婷婷婷开心无码播放| 午夜精品久久久久久久爽| 色噜噜狠狠色综| 五月激情婷婷综合| 色五月97| 欧美色五月天| seav天堂| 色国产五月| www.婷婷五月天| 婷婷永久在线| 五月婷婷丁香大陆免费| 五月天堂六月丁香亚州中文字幕久久 | 天天舔天天插天天爱| 97人人操人人爽| 国产成人在线不卡AV| 亚洲最大视频| 亲子乱av一区二区三区的| 丁香五月av在线| 九九在线热九九在线热99热| 99re在线观看视频| 色五月婷婷在线| 亚洲综合在线视频| 久久久8| 爽极品色| 日本婷久久| www.99精品在线| 婷婷五月天在线观看| 熟美女麻豆| 开心激情网五月天| 人操人| 99精品在这里| 97人人干。| 伊人啪啪网| 中文字幕久久婷九女同| 激情丁香图片| 丁香五月婷婷少妇| 亚亚州久久高潮| 激情碰碰碰| 夜夜撸夜夜骑| 激情久久 婷婷| 狠狠色噜噜狠狠| 91人操| 9999久久久久| 99爱视频精品在线观看| www.色婷婷| 六月丁香啪| 全部老头和老太XXXXX| 五月青青草综合| 少妇水多A片太爽了| 思思热久久婷婷五月天| www.ywav| 99热这里只有精品3| 伊人五月综合网| 久久婷丁香五月| 97人人干人人操| 五月天桃色深爱网| 丁香婷婷综合五月天| 欧美私人家庭影院| 狠狠草综合网| 中文字幕在线不卡视频| 性爱视频久久| 久久婷婷啪啪视频| 人人播| 婷婷五月天日逼| 999热在线观看视频| 99热这里只有精彩| 激情五月色婷婷| 丁香婷婷色五月| 久久99热这里只有精品23| 色爆五月| 五月天婷婷在线观看| 9月色婷婷| 99在线观看| 五月视频日本免费观看| 色五月婷婷7777| 99久久五月婷婷| 婷婷五月天久久| 99久久九九| 狠狠色精品综合| 五月开心久久| 色久天| 五月婷婷深爱六月| 丁香香蕉婷婷| 婷婷五月天激情网| 午夜 外网 精品 在线| 92久久久| 九九九热精品| 丁香五月婷婷动漫视频| 久久99草五月婷婷| 婷婷丁香花五月天| 99久99热| 色婷婷无吗| 色狠狠色| 欧美va| 99日精品视频| 久草五月| 99精品大片| 国产成人综合网| 激情婷婷丁香| 日韩另类在线观看| 操笔无码| 99啪在线视频| 婷婷五月天成人网| 色狠狠色综合| 超碰人人在线| 欧美色激情四射| 国产成人综合在线| 亭亭色天香| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 欧美五月婷婷| 开心丁五月| 五月婷久久综合| 91婷婷| 久久久久久综合五月婷婷| 久青操| 熟女人妻一区二区三区免费看| 色五月AV| 99极品视频| 99人妻碰碰碰久久久久视| 色色99| 久久丁香综合| www.狠狠狠狠| 婷婷色吧| 国产真实乱对白精彩| 五月丁香色婷婷色| 天天插轮理| 久热一本| 五月婷护士| 久热只有精品| 亚洲天堂aaaa| 亚洲视频丁香网va| 婷婷内射视频在线| 丁香婷婷欧美综合| 亚洲av骚货| 丁香五月天激情视频| 色播播之激情五月婷婷| 国产三级片91| 9|人妻人人操| 婷婷五月天小说| 天天干天天干天天干| 26UUU精品一区二区c〇m| 影音先锋一区二区三区| 香蕉久久五月| 天天天天操| 五月丁香啪综合| 色婷婷狠狠干芒果TV| 五月丁香六月婷婷,婷| 色婷婷色综合激情91| 婷婷久久色五月婷婷久久久| 丁香五月成人社区| 五月天婷婷丁香基地在线观看| 99这里只有精品在线| 亚洲婷婷视频| 99久久99视频| 激情婷婷五月社区| 免费观看18视频网站| 成人电影一区| 五月天婷婷成人网| 丁香美女主播视频在线观看| 五月丁香激情五月天| 99网址在线看| 婷婷伊人綜合| 久久婷婷原创视频| 天堂无码人妻精品AV一区| 色五月婷婷av| 久久久精品人妻| 日夜夜久久| 五月丁香六月激情综合在线| 思思久ren热| 99精品久久|