久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

PHP發(fā)卡系統(tǒng)源碼核心解析:支付回調(diào)與卡密自動(dòng)發(fā)貨設(shè)計(jì)

PHP發(fā)卡系統(tǒng)源碼核心解析:支付回調(diào)與卡密自動(dòng)發(fā)貨設(shè)計(jì) 簡(jiǎn)介這是一份面向網(wǎng)站開發(fā)者和運(yùn)營(yíng)者的發(fā)卡系統(tǒng)網(wǎng)站源碼屬于修復(fù)版完整項(xiàng)目涵蓋虛擬商品自動(dòng)售賣所需的核心流程。壓縮包共375個(gè)文件大小3.53MB其中以188個(gè)PHP文件為主干負(fù)責(zé)業(yè)務(wù)邏輯與接口處理44個(gè)CSS和32個(gè)JS用于前端界面與交互45個(gè)PNG和38張JPG構(gòu)成頁(yè)面素材另有10個(gè)SQL數(shù)據(jù)庫(kù)腳本便于初始化部署。源碼目錄清晰包含商品管理、訂單處理、支付集成、用戶管理、安全防護(hù)、日志記錄等模塊并配有安裝目錄和后臺(tái)管理界面。通過該源碼可理解自動(dòng)發(fā)卡業(yè)務(wù)流程學(xué)習(xí)ajax異步處理、API接口對(duì)接、定時(shí)任務(wù)清理過期訂單等項(xiàng)目設(shè)計(jì)思路也適合作為PHP項(xiàng)目結(jié)構(gòu)與二次開發(fā)的實(shí)戰(zhàn)范例。修復(fù)版已針對(duì)安全漏洞和穩(wěn)定性進(jìn)行優(yōu)化部署時(shí)需遵守法律法規(guī)確保商品合法性與用戶數(shù)據(jù)安全。已有1187人學(xué)習(xí)下載對(duì)于需要快速搭建或定制發(fā)卡平臺(tái)的開發(fā)者這份資源提供了可直接參考的完整框架。1. 發(fā)卡系統(tǒng)能干什么一次支付系統(tǒng)自動(dòng)吐出卡密A同學(xué)做虛擬商品線上售賣每天手動(dòng)把會(huì)員碼、軟件授權(quán)碼發(fā)給買家半夜還要爬起來(lái)回消息。后來(lái)他把卡密庫(kù)存全部搬進(jìn)這套發(fā)卡系統(tǒng)網(wǎng)站源碼買家在下單頁(yè)選好商品、完成支付支付網(wǎng)關(guān)的回調(diào)一到系統(tǒng)自動(dòng)從卡密池取出一張貨在訂單頁(yè)展示給買家同時(shí)通過站內(nèi)消息或郵件補(bǔ)發(fā)一次。這套源碼就是干這件事的商品管理、卡密批量導(dǎo)入、自動(dòng)發(fā)貨、訂單查詢、支付回調(diào)處理全部通過網(wǎng)站頁(yè)面完成。適合個(gè)人開發(fā)者、小微團(tuán)隊(duì)做軟件授權(quán)、會(huì)員兌換碼、課程邀請(qǐng)碼這類虛擬商品的自動(dòng)化售賣也適合想學(xué) PHP 支付閉環(huán)和庫(kù)存扣減的開發(fā)者拿來(lái)練手。2. 技術(shù)棧與目錄結(jié)構(gòu)入口文件到數(shù)據(jù)庫(kù)的全貌一套發(fā)卡系統(tǒng)的技術(shù)選型決定了它能不能在低配服務(wù)器上跑得穩(wěn)也決定了二次開發(fā)時(shí)你能改動(dòng)哪些層。這一章先把這份源碼里最外圍的技術(shù)組合、目錄劃分和數(shù)據(jù)表關(guān)系理清楚后面分析核心鏈路時(shí)每段代碼都能對(duì)應(yīng)到具體文件和表。2.1 技術(shù)組合PHP 7.4 ThinkPHP 6 MySQL 5.7 Redis 6這套源碼是典型的 PHP 單體應(yīng)用。選 PHP 而不是 Node 或 Go原因很直接發(fā)卡系統(tǒng)的主流使用場(chǎng)景是個(gè)人服務(wù)器或低配虛擬主機(jī)PHP-FPM 的部署成本和運(yùn)行開銷最低??蚣軐用嬗玫氖侵髁?MVC 框架路由、ORM、模型事件這些基礎(chǔ)設(shè)施都有現(xiàn)成實(shí)現(xiàn)不用自己造輪子。Redis 在這里的角色很關(guān)鍵支付回調(diào)冪等、防并發(fā)超賣、異步隊(duì)列消費(fèi)者都要靠它。組件常見版本項(xiàng)目里干什么PHP-FPM7.4運(yùn)行 PHP 代碼處理 HTTP 請(qǐng)求ThinkPHP 66.xMVC 框架路由、ORM、模板引擎MySQL5.7商品、卡密池、訂單核心數(shù)據(jù)的持久化Redis6.x回調(diào)冪等鎖、庫(kù)存扣減鎖、異步任務(wù)隊(duì)列這套組合里最值得關(guān)注的是 Redis 承擔(dān)了“鎖”的職責(zé)。MySQL 的事務(wù)鎖能保證數(shù)據(jù)一致性但支付回調(diào)這種高頻率、可能重試的入口先用 Redis 做一次冪等攔截能減少大量無(wú)謂的數(shù)據(jù)庫(kù)行鎖等待。2.2 目錄結(jié)構(gòu)按業(yè)務(wù)模塊而不是按技術(shù)分層源碼解壓后的目錄劃分很清晰沒有把代碼全塞在控制器里。你可以先看app/controller找到 HTTP 入口再進(jìn)app/service看真正的業(yè)務(wù)邏輯。目錄樹大概長(zhǎng)這樣faka/ ├─ app/ │ ├─ controller/ │ │ ├─ Index.php # 商城首頁(yè)與購(gòu)買流程 │ │ ├─ Goods.php # 商品詳情與價(jià)格展示 │ │ ├─ Order.php # 下單、支付跳轉(zhuǎn) │ │ └─ Notify.php # 支付回調(diào)統(tǒng)一入口 │ ├─ model/ │ │ ├─ Goods.php # 商品模型 │ │ ├─ Cards.php # 卡密池模型 │ │ └─ Order.php # 訂單模型 │ ├─ service/ │ │ ├─ CardService.php # 卡密入庫(kù)、發(fā)貨、狀態(tài)流轉(zhuǎn) │ │ └─ PayService.php # 支付通道適配、驗(yàn)簽 │ └─ common.php # 公共函數(shù)金額格式化、驗(yàn)簽 ├─ config/ │ ├─ app.php # 應(yīng)用基礎(chǔ)配置 │ ├─ database.php # 數(shù)據(jù)庫(kù)連接配置 │ └─ route.php # 路由規(guī)則 ├─ public/ │ ├─ index.php # 應(yīng)用唯一入口 │ └─ static/ # CSS/JS/圖片等靜態(tài)資源 ├─ runtime/ # 日志、緩存、編譯模板 └─ .env.example # 環(huán)境變量配置模板service層的存在是這個(gè)目錄設(shè)計(jì)里最值得學(xué)習(xí)的地方??刂破髦回?fù)責(zé)收參數(shù)、調(diào)服務(wù)、返回響應(yīng)卡密的入庫(kù)、扣減、發(fā)貨這些核心邏輯全部收斂到CardService里支付回調(diào)統(tǒng)一走Notify控制器并轉(zhuǎn)發(fā)到PayService。這樣如果以后要對(duì)接新支付通道只需要擴(kuò)展PayService不用去動(dòng)訂單和卡密的核心邏輯。2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)五張表?yè)纹鹫麄€(gè)發(fā)卡流程數(shù)據(jù)表只有五張核心表字段也不算多。這種精簡(jiǎn)設(shè)計(jì)由發(fā)卡業(yè)務(wù)本身決定商品、卡密、訂單、回調(diào)日志、配置五個(gè)域幾乎覆蓋了全部業(yè)務(wù)場(chǎng)景。表名核心字段作用goodsid, name, price, stock, sold_count, status商品的基本信息和庫(kù)存總量cardsid, goods_id, card_key, card_value, a_status, sold_order_no, sold_time卡密池每行是一張卡ordersorder_no, goods_id, pay_amount, channel, u_status, pay_time, card_id訂單與支付狀態(tài)流轉(zhuǎn)pay_logorder_no, notify_raw, notify_time, is_handle支付回調(diào)原始數(shù)據(jù)留痕configkey, value站點(diǎn)名稱、支付密鑰等鍵值配置cards表和orders表之間的關(guān)聯(lián)值得注意。cards里的a_status用于標(biāo)識(shí)卡密狀態(tài)0 待售、1 已售、2 鎖定、3 作廢。當(dāng)一張卡被賣出它的sold_order_no會(huì)寫入對(duì)應(yīng)的訂單號(hào)同時(shí)orders表記錄card_id這種雙向關(guān)聯(lián)讓對(duì)賬變得很簡(jiǎn)單。orders表的u_status則維護(hù)訂單自身狀態(tài)pending 待支付、paid 已支付、refunded 已退款。兩張表通過card_id和sold_order_no互相索引避免在發(fā)貨時(shí)再去遍歷待售卡密。3. 核心模塊拆解一張卡密從入庫(kù)到售出的完整鏈路發(fā)卡系統(tǒng)最核心的鏈路是管理員批量導(dǎo)入卡密用戶下單支付支付回調(diào)觸發(fā)后系統(tǒng)從卡密池取一張標(biāo)記為已售并返回給買家。整個(gè)過程里最危險(xiǎn)的兩個(gè)點(diǎn)是重復(fù)入庫(kù)和并發(fā)超賣。這一章把這條鏈路的每一段代碼按執(zhí)行順序拆開講清楚每段代碼為什么那么寫。3.1 卡密批量入庫(kù)事務(wù)包裹用內(nèi)存哈希做去重運(yùn)營(yíng)人員拿到一批卡密后通常是一段文本或一個(gè) Excel 文件。導(dǎo)入接口做的事情本質(zhì)上就是按行拆分、去空、查重、批量插入。源碼里CardService的導(dǎo)入方法大致如下public function importCards(int $goodsId, array $cards): int { $goods Goods::find($goodsId); if (!$goods) { throw new \Exception(商品不存在); } // 先做內(nèi)存去重避免重復(fù)卡密進(jìn)入下一輪 $newList []; foreach ($cards as $item) { $cd trim($item); if ($cd ) { continue; } if (in_array($cd, $newList, true)) { continue; } $newList[] $cd; } if (empty($newList)) { throw new \Exception(沒有有效的卡密數(shù)據(jù)); } Db::transaction(function () use ($goodsId, $newList, $goods) { // 查一次庫(kù)里已有卡密防止重復(fù)導(dǎo)入 $exist Db::name(cards) -where(goods_id, $goodsId) -column(card_key); $existMap array_flip($exist); $insert []; foreach ($newList as $card) { if (isset($existMap[$card])) { continue; } $insert[] [ goods_id $goodsId, card_key $card, a_status 0, create_time time(), ]; } if (!empty($insert)) { Db::name(cards)-insertAll($insert); // 同步更新商品的庫(kù)存余量 $goods-stock count($insert); $goods-save(); } }); return count($insert); }導(dǎo)入這段代碼把“數(shù)據(jù)清洗”和“落庫(kù)”拆成了兩步。第一步先用內(nèi)存in_array去重這一步其實(shí)可以省略只靠 MySQL 的唯一索引也能攔住重復(fù)但先用 PHP 做一次過濾能顯著減少第二步insertAll的數(shù)據(jù)量。第二步用事務(wù)包裹再把庫(kù)里已有的card_key拉出來(lái)做一次對(duì)比確保同一商品下不會(huì)出現(xiàn)重復(fù)卡密。這里有個(gè)我在實(shí)際項(xiàng)目中常注意的點(diǎn)如果是批量導(dǎo)入幾萬(wàn)條卡密insertAll可能超過 SQL 最大包大小穩(wěn)妥的做法是按 1000 條一組分多次插入。3.2 下單創(chuàng)建訂單顯示庫(kù)存但不下手鎖庫(kù)存很多發(fā)卡系統(tǒng)初始版本會(huì)在用戶點(diǎn)擊購(gòu)買時(shí)就把庫(kù)存減掉這會(huì)導(dǎo)致大量“拍下不支付”的垃圾訂單霸占庫(kù)存。這套源碼的思路是下單時(shí)只創(chuàng)建一個(gè) pending 狀態(tài)的訂單不扣減卡密池真正的庫(kù)存扣減動(dòng)作放到支付成功以后。public function createOrder(int $goodsId): string { $goods Goods::lock(true)-find($goodsId); if (!$goods || $goods-status ! 1) { throw new \Exception(商品已下架); } // 這里讀的是商品表里的 stock 字段而不是實(shí)際統(tǒng)計(jì)卡密表 if ($goods-stock 0) { throw new \Exception(庫(kù)存不足); } $orderNo date(YmdHis) . mt_rand(1000, 9999); Db::name(orders)-insert([ order_no $orderNo, goods_id $goodsId, pay_amount $goods-price, u_status pending, create_time time(), ]); return $orderNo; }這段代碼里用lock(true)讀取商品行是為了保證并發(fā)下單時(shí)讀到的stock是準(zhǔn)確的避免兩個(gè)用戶同時(shí)看到一個(gè)商品還有最后 1 件庫(kù)存。但請(qǐng)注意這里并沒有真正把stock減掉訂單只是停留在 pending 狀態(tài)。這種設(shè)計(jì)的取舍很明確不支付就不會(huì)占用庫(kù)存對(duì)真實(shí)買家更友好。壞處是極端情況下會(huì)有輕微超賣比如 100 個(gè)人同時(shí)下單最后 1 件但只要支付回調(diào)里卡密扣減邏輯做對(duì)了多的訂單會(huì)進(jìn)入缺貨退款流程不會(huì)把一張卡發(fā)給兩個(gè)人。3.3 支付回調(diào)與自動(dòng)發(fā)貨Redis 冪等鍵加 MySQL 行鎖支付回調(diào)是發(fā)卡系統(tǒng)的命門。支付網(wǎng)關(guān)會(huì)異步通知你的服務(wù)器而且通知可能發(fā)生多次如果回調(diào)處理不做好冪等和并發(fā)控制就會(huì)出現(xiàn)一張訂單發(fā)兩次貨、兩張訂單搶同一張卡的情況。源碼在Notify控制器里做的處理邏輯如下public function payNotify(array $params): bool { $orderNo $params[order_no]; // Redis 冪等鍵同一訂單即使收到多次回調(diào)也只有一個(gè)能進(jìn)入發(fā)貨流程 $lockKey notify_lock_ . $orderNo; if (!Redis::set($lockKey, 1, [nx, ex 120])) { return true; } Db::transaction(function () use ($orderNo) { // 行鎖訂單防止兩個(gè)并發(fā)回調(diào)同時(shí)讀到未支付狀態(tài) $order Db::name(orders) -where(order_no, $orderNo) -lock(true) -find(); if (!$order || $order[u_status] paid) { return; } // 從卡密池取最早一張待售卡片同樣加行鎖 $card Db::name(cards) -where(goods_id, $order[goods_id]) -where(a_status, 0) -order(id asc) -lock(true) -find(); if (!$card) { // 庫(kù)存不足訂單標(biāo)記為缺貨狀態(tài)進(jìn)入人工退款流程 Db::name(orders)-where(id, $order[id])-update([ u_status refunded, ]); throw new \Exception(卡密庫(kù)存不足請(qǐng)人工介入); } Db::name(cards)-where(id, $card[id])-update([ a_status 1, sold_order_no $orderNo, sold_time time(), ]); Db::name(orders)-where(id, $order[id])-update([ u_status paid, pay_time time(), card_id $card[id], ]); }); return true; }這里有兩個(gè)攔截重復(fù)發(fā)貨的機(jī)制缺一不可。第一層是 Redis 的set nx ex同一訂單號(hào)第一次回調(diào)會(huì)成功設(shè)置鍵后續(xù)的重試回調(diào)在 Redis 這一層就被擋掉了壓根不會(huì)進(jìn)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯。第二層是 MySQL 事務(wù)里的lock(true)即使 Redis 抖動(dòng)或鍵過期導(dǎo)致兩個(gè)回調(diào)同時(shí)進(jìn)入事務(wù)訂單行鎖也能保證只有一個(gè)事務(wù)能讀到 pending 狀態(tài)并進(jìn)行發(fā)貨另一個(gè)讀到u_status paid后直接退出。真正取出卡密用的是where(a_status, 0)加lock(true)并發(fā)場(chǎng)景下后一個(gè)事務(wù)會(huì)被阻塞等前一個(gè)事務(wù)提交后它再讀取時(shí)這張卡的a_status已經(jīng)變成 1查詢條件命中不到就不會(huì)出現(xiàn)兩張訂單發(fā)出同一張卡的慘案。3.4 訂單查卡與補(bǔ)發(fā)用 card_id 關(guān)聯(lián)而非狀態(tài)篩選買家支付成功后跳回訂單詳情頁(yè)前端需要立即展示卡密。如果每次查看都去卡密池里篩選a_status 0那就會(huì)拿到另外一張未售卡這是典型的邏輯錯(cuò)誤。正確做法是通過訂單表里已經(jīng)寫入的card_id關(guān)聯(lián)查詢$order Db::name(orders) -alias(o) -join(cards c, o.card_id c.id) -where(o.order_no, $orderNo) -field(o.order_no, o.pay_amount, c.card_key, c.card_value) -find();這段查詢的意義不在于 SQL 本身有多復(fù)雜而是它體現(xiàn)了一個(gè)關(guān)鍵約定訂單和卡密一旦綁定就通過外鍵關(guān)系固化下來(lái)后續(xù)所有查看和補(bǔ)發(fā)動(dòng)作都基于這個(gè)綁定關(guān)系而不是去卡密池里重新找。訂單詳情、郵件補(bǔ)發(fā)、后臺(tái)售后查詢?nèi)繌?fù)用這一個(gè)查詢邏輯就能保證買家在任意時(shí)刻看到的都是當(dāng)初分配給自己的那張卡。4. 避坑指南支付回調(diào)和并發(fā)場(chǎng)景的幾個(gè)現(xiàn)場(chǎng)發(fā)卡系統(tǒng)看起來(lái)功能簡(jiǎn)單實(shí)際跑起來(lái)最容易翻車的地方全在支付回調(diào)、庫(kù)存扣減和數(shù)據(jù)安全這幾個(gè)點(diǎn)。這一章整理了四個(gè)真實(shí)項(xiàng)目里最容易踩到的坑每一條都按現(xiàn)象、原因、解決三步說清楚。4.1 重復(fù)回調(diào)導(dǎo)致同一訂單發(fā)出兩張卡密現(xiàn)象買家只下一單付了一次款卻收到了兩條帶卡密的郵件或站內(nèi)信。原因支付網(wǎng)關(guān)為了保證通知送達(dá)會(huì)按照一定頻率重試回調(diào)直到你的服務(wù)器返回表示“我處理成功了”的響應(yīng)。如果回調(diào)處理里沒有做冪等控制每一次重試都會(huì)執(zhí)行一遍完整的發(fā)貨邏輯自然就發(fā)了兩張卡。解決在回調(diào)入口加 Redis 冪等鍵用set nx保證同一個(gè)訂單號(hào)只有第一次請(qǐng)求能真正進(jìn)入發(fā)貨流程后續(xù)請(qǐng)求直接返回成功。同時(shí)數(shù)據(jù)庫(kù)里的訂單狀態(tài)也要做二次校驗(yàn)u_status一旦變成paid后續(xù)事務(wù)讀到就直接退出。兩套機(jī)制配合能擋住 Redis 鍵意外失效時(shí)的極端情況。4.2 高并發(fā)下超賣最后一張卡被兩個(gè)訂單同時(shí)買走現(xiàn)象商品庫(kù)存只剩最后 1 張兩個(gè)買家同時(shí)支付成功系統(tǒng)卻只找到 1 張卡另一個(gè)訂單被迫人工退款。原因兩張訂單的支付回調(diào)幾乎同時(shí)進(jìn)入發(fā)貨邏輯都執(zhí)行了where a_status 0的查詢?cè)跊]有行鎖的情況下都拿到了同一張卡然后分別標(biāo)記為已售。解決取卡密的 SQL 必須使用SELECT ... FOR UPDATE即框架里的lock(true)讓并發(fā)事務(wù)排隊(duì)。前一個(gè)事務(wù)取走卡并提交后后一個(gè)事務(wù)再執(zhí)行查詢時(shí)已經(jīng)取不到待售卡會(huì)走缺貨退款的分支。注意鎖的范圍要精確到卡密池的行不要在商品表上鎖整個(gè)庫(kù)存否則并發(fā)性能會(huì)非常難看。4.3 回調(diào)地址被偽造卡密被人批量刷走現(xiàn)象后臺(tái)日志里出現(xiàn)大量訂單都走同一個(gè)回調(diào)地址訂單沒有真實(shí)支付記錄但卡密全部被標(biāo)記為已售。原因回調(diào)接口沒有做簽名驗(yàn)證攻擊者構(gòu)造一個(gè)包含訂單號(hào)的請(qǐng)求直接訪問回調(diào)地址服務(wù)器誤以為支付成功就執(zhí)行了發(fā)貨邏輯。解決支付網(wǎng)關(guān)每次回調(diào)會(huì)帶簽名參數(shù)把所有回調(diào)參數(shù)按字母序排序拼上商戶密鑰后計(jì)算簽名再用hash_equals和回調(diào)里的簽名比對(duì)。hash_equals是專門用來(lái)做字符串比較的函數(shù)比直接更防時(shí)序攻擊private function verifySign(array $params, string $sign): bool { // 1. 剔除簽名本身按字母序排序 ksort($params); // 2. 拼接成 query string 形式再拼上商戶密鑰 $str urldecode(http_build_query($params)); $secret $this-config-getPaySecret(); // 3. 用 hash_equals 做常量時(shí)間比較 return hash_equals(md5($str . $secret), $sign); }這套代碼的關(guān)鍵在排序和拼接規(guī)則必須和支付網(wǎng)關(guān)的簽名規(guī)則完全一致。一般支付平臺(tái)文檔里都會(huì)寫明簽名算法照著實(shí)現(xiàn)一遍后建議先跑一遍平臺(tái)提供的模擬回調(diào)工具確認(rèn)驗(yàn)簽通過再上線。4.4 卡密明文入庫(kù)數(shù)據(jù)庫(kù)泄露等于全部資產(chǎn)裸奔現(xiàn)象服務(wù)器被拖庫(kù)后攻擊者直接拿著card_key字段去變現(xiàn)所有庫(kù)存瞬間歸零。原因卡密字段在數(shù)據(jù)庫(kù)里是明文存儲(chǔ)沒有做任何加密或脫敏處理。解決入庫(kù)前用openssl_encrypt對(duì)卡密做對(duì)稱加密密鑰存到config表或.env里。展示和補(bǔ)發(fā)時(shí)再解密// 入庫(kù)時(shí)加密 $encrypted openssl_encrypt($cardKey, AES-256-CBC, $secretKey, 0, $iv); // 展示時(shí)解密 $plainCard openssl_decrypt($encrypted, AES-256-CBC, $secretKey, 0, $iv);這樣即使數(shù)據(jù)庫(kù)文件整個(gè)泄露攻擊者拿到的也只是一堆密文沒有應(yīng)用密鑰就無(wú)法還原出真實(shí)卡密。代價(jià)是后臺(tái)管理員搜索卡密時(shí)會(huì)失去“全文模糊查詢”的能力只能在加密前記錄一段不可逆哈希用于精確匹配。這個(gè)取舍在虛擬商品交易場(chǎng)景里是值得的。5. 運(yùn)行與部署從源碼到一臺(tái)服務(wù)器前面四章把代碼邏輯講透了接下來(lái)要解決的問題是這份源碼拿到手本地怎么跑起來(lái)線上怎么配置。這一步對(duì)新手來(lái)說最容易卡住主要卡在三個(gè)點(diǎn)PHP 擴(kuò)展缺失、偽靜態(tài)沒配、.env配置不對(duì)。這一章按順序走一遍。5.1 本地運(yùn)行最小依賴和初始化步驟發(fā)卡系統(tǒng)的運(yùn)行環(huán)境非常常規(guī)只要 PHP 7.4 以上版本開啟pdo_mysql、redis、openssl、fileinfo這幾個(gè)擴(kuò)展即可。用你習(xí)慣的集成環(huán)境或 Docker 都行。我一般按下面這個(gè)順序初始化項(xiàng)目# 1. 進(jìn)入項(xiàng)目根目錄安裝依賴 composer install # 2. 復(fù)制環(huán)境配置模板并編輯 cp .env.example .env # 3. 啟動(dòng) ThinkPHP 自帶的開發(fā)服務(wù)器 php think run.env文件里要重點(diǎn)填對(duì)四組信息數(shù)據(jù)庫(kù)連接地址和賬號(hào)、Redis 連接地址、支付網(wǎng)關(guān)的商戶號(hào)和密鑰。第一次運(yùn)行php think run后訪問http://127.0.0.1:8000應(yīng)該能看到商城首頁(yè)后臺(tái)入口一般在/admin路徑首次進(jìn)入會(huì)跳轉(zhuǎn)初始化頁(yè)面讓你設(shè)置管理員賬號(hào)和密碼。5.2 Nginx 配置與偽靜態(tài)讓所有路由都進(jìn) index.php本地開發(fā)服務(wù)器不用配偽靜態(tài)但線上部署到 Nginx 時(shí)必須配。這套源碼的入口文件在public/index.php所有請(qǐng)求都通過這個(gè)文件分發(fā)到不同控制器。Nginx 配置的核心是把不存在的文件請(qǐng)求 rewrite 到index.php上server { listen 80; server_name your-domain.com; root /var/www/faka/public; index index.php index.html; location / { # 文件不存在時(shí)交給 index.php 處理 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s/$1 last; } } location ~ ^/index\.php { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root/index.php; include fastcgi_params; } location ~* \.(jpg|jpeg|png|css|js|ico)$ { expires 7d; } }這段配置里最關(guān)鍵的if (!-e $request_filename)是判斷請(qǐng)求的路徑是不是真實(shí)存在的文件像/admin、/order/detail這類路由在文件系統(tǒng)里并不存在需要 rewrite 到index.php里由框架解析。而靜態(tài)資源請(qǐng)求比如/static/css/app.css是真實(shí)文件必須直接返回不能走 PHP 解析否則會(huì)白白損耗性能。5.3 上線前必須改的幾個(gè)配置項(xiàng)上線部署和本地跑通有一個(gè)顯著區(qū)別本地用的是默認(rèn)密鑰和測(cè)試支付參數(shù)線上必須全部換成自己的。我每次上線前會(huì)強(qiáng)制過一遍以下清單.env里的PAY_SECRET換成至少 32 位隨機(jī)字符串不能用源碼自帶的默認(rèn)值數(shù)據(jù)庫(kù)連接不推薦使用數(shù)據(jù)庫(kù) root 賬號(hào)單獨(dú)創(chuàng)建一個(gè)業(yè)務(wù)賬號(hào)并只授予業(yè)務(wù)庫(kù)表權(quán)限支付回調(diào)地址要改成線上域名并且暫時(shí)關(guān)閉支付網(wǎng)關(guān)的沙箱模式APP_DEBUG設(shè)為false防止異常信息直接暴露給訪客runtime目錄要保證 PHP 進(jìn)程有寫入權(quán)限否則日志和緩存寫不進(jìn)去排查問題時(shí)什么線索都看不到配置完成后建議先做一次小額真實(shí)支付確認(rèn)回調(diào)、發(fā)貨、訂單詳情展示全部正常再開始放量。這一步跳過會(huì)怎么樣大概率上線第一天就被各種訂單問題淹沒而且很難從日志里定位到原因。6. 二次開發(fā)把同步發(fā)貨改成異步隊(duì)列處理如果只是把卡密直接存在數(shù)據(jù)庫(kù)里同步發(fā)貨這個(gè)系統(tǒng)已經(jīng)能跑??梢坏┠憬尤攵绦虐l(fā)送或者物流單號(hào)推送這種外部渠道同步發(fā)卡就會(huì)暴露問題支付網(wǎng)關(guān)的等待時(shí)間有限如果回調(diào)接口里多做幾次第三方請(qǐng)求網(wǎng)關(guān)會(huì)認(rèn)為你處理超時(shí)而反復(fù)重試反而容易產(chǎn)生重復(fù)發(fā)貨的隱患。常見的改造思路是把發(fā)貨動(dòng)作推進(jìn) Redis 隊(duì)列讓回調(diào)只負(fù)責(zé)“確認(rèn)支付并標(biāo)記已支付”真正的卡密取出和推送交給后臺(tái)消費(fèi)者異步執(zhí)行。我一般會(huì)加一個(gè)簡(jiǎn)單的隊(duì)列// 支付回調(diào)里在訂單標(biāo)記為 paid 后只做一件事推送任務(wù) Redis::lpush(faka:dispatch_queue, json_encode([ order_no $orderNo, goods_id $order[goods_id], ])); // 后臺(tái)消費(fèi)者腳本里從隊(duì)列里取出訂單號(hào)再發(fā)貨 while ($payload Redis::brpop(faka:dispatch_queue, 5)) { $orderNo json_decode($payload[1], true)[order_no]; $card CardService::dispatch($orderNo); }這樣改造后支付回調(diào)的耗時(shí)大幅縮短網(wǎng)關(guān)認(rèn)定的“處理成功”在毫秒級(jí)內(nèi)就能返回。真正的取卡、發(fā)短信、發(fā)郵件全部挪到消費(fèi)者里做如果消費(fèi)者掛了任務(wù)繼續(xù)留在隊(duì)列里服務(wù)恢復(fù)后還能補(bǔ)處理不會(huì)丟單。驗(yàn)證異步化改造是否成功有個(gè)很簡(jiǎn)單的辦法同時(shí)開兩個(gè)請(qǐng)求模擬同一訂單號(hào)的重復(fù)支付回調(diào)觀察在 Redis 冪等鍵有效期間訂單只標(biāo)記一次paid隊(duì)列里只有一條任務(wù)記錄消費(fèi)者也只發(fā)出一次貨。我從那次改完隊(duì)列之后每次動(dòng)發(fā)貨鏈路都會(huì)強(qiáng)制自己在測(cè)試環(huán)境先跑一遍這個(gè)雙回調(diào)測(cè)試。這套源碼的支付回調(diào)主鏈路依然可以保持同步方式使用但理解了隊(duì)列化改造的思路以后加新渠道就不會(huì)被回調(diào)超時(shí)卡住。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
性暴力欧美猛交在线直播| 天天综合网~91入口| 国产精品96| 一级黄碟在线看| 99视频内射三四| 日本操逼视频免费| 超碰九九| 欧美综合亚洲| 精品人妻久久久| 亚洲一区二区三区麻豆传媒| 97人人草| 亚洲精品日韩国产欧美| 国产成人午夜视频网址| 亚洲人妻中文在线视频| 熟妇女伦乱视频| 国产热av| 色www精品视频在线观看| 亚洲激情网一二三四区| 97福利视频| 秋霞无码av鲁丝片一区| 91精品国产日韩欧美综合| 啪啪啪综合网| 在线免费观看高清无码视频| 欧美78P| 九热大香蕉| 95人妻爽爽人人做人人澡| 婷婷午夜成人色中色| 亚洲综合欧美| 久久春色| 国产精品毛片?v一区二区三区| 国产97亚洲| 在线五区| 国产麻豆91欧美一区二区久久婷婷国产精品 | 亚洲色婷婷久久91| 老熟妇乱轮| 国产成人在线观看网址| 高清国产精品福利网站| 中文字幕一二区二三区人妻专区| 亚洲巨爆乳一区二区三区四季网| 国产一区二区三区高清视频| 性爱网站一区二区| 日本性爱视频一级| 日韩精品一区二区高清| av网站在线观看了| 浪人综合网| 人妻少妇被猛烈进入中| 婷婷色色五月天| 91九九| 五月激情啪啪| 久久色一区二区| 久久一二三四不卡| 久久超碰av在线| 夜夜爽夜夜爽| 99国产精品免费| 人人看欧美性爱| 欧美 亚洲 91| 极品出轨视频网站| 激情五月天中文字幕色| 18禁止看精品中文字幕| 亚洲一区二区三区中文字幕| 亚洲一本大道中文字幕无码在线| 五月天激情四射| 偷拍欧美激情| 欧洲精品网| 久久亚洲日韩国产欧| 久久久涩| 日熟女| 强歼乱伦资源网| 亚洲国产无码精品首页久久久| 任你爽视频| 欧美九九99久久精品| 密臀AV在线| 久久是精品| 国产精品网址| 午夜福利免费精品视频| av中文字幕在线熟女| 熟女欧美日韩综合婷婷| 91精品91久久久久77777| 精品亚洲天堂| 日韩免费看黄片| 欧美日韩夜夜| 色约约一区=区三区| 无码精品久久| 天天爽天天操| 欧洲一区二区三区四区在线观看| 五月丁香黄色网| 美国aaaaa一级黄片| 夜夜夜久久| 国产在线精品电影观看| 人人操我人人干| 无码又爽又硬又激情免费视频| 久久一二三四不卡| 久久在线观看免费视频| 久久午夜伦| 狠狠图片青青草| 精品二区久久| 性爱边摸边日免费AV| 色综合色色| 91 综合 色| 人妻夜夜爽天天爽三区麻豆AV网站| 国产精品爽爽v| 色噜噜人妻av 中文字幕| 亚洲国产亚洲天堂| 狠狠中文字幕| 91中出视频| 艹少妇网站| 少妇三P| 久久久久亚洲| 91美女丝袜诱惑视频| 中文欧丝袜诱惑| 中文?日韩?免费?精品| 97资源制服丝袜| 欧美激情区| 一级黄色性爱A级片| 国产婷婷一区| 五月天久久综合网| 国产成人AV麻豆| 日韩日本欧美在线观看| 国产伦精品免编号公布| 污色区网站| 黑操B| 五十路一区无码| 九九伊人网| 青青草导航在线视频| 人妻 丝袜美腿 中文字幕| 综合日本女人伊人| 欧美天天综合网| 一二三四免费视频| 女沟厕偷窥piss小便| 亚洲不卡不卡中文字幕不卡| 国产欧美在线观看免费观看| 夜精品久无码| 国产乱伦性爱AV| 九九九九一区| 日本一区二区三区欧美日韩中文字幕| 色色色日本| 妇女视频网站| 老熟女乱子伦中文字幕一区二区| 久久久极品| 丁香九月激情| 亚洲无码 国产无码| 十八禁网站在线| 亚洲黄片免费在线播放| 97精品视频网站| 一区不卡在线观看av| 久久久久久久久久精| 亚欧日韩成人| 成人精品久久| 澳门人妻久久| 日韩乱伦视频| 最新日本中文字幕| 亚洲一二三四区在线免费看视频| 日本大片日本一区二区免费高清| 精品无码久久久久久久杏吧| 亚洲色图第一页| 日本网色| 亚洲中文一区二区三区| 国产精品农村妇女| 啊啊啊啊啊啊啊在线| 狠狠爱AV| 欧美亚综合色图| 操我无码| 国产成人91一区二区三区| 超碰97久久观看| 一区二区三区激情在线观看| 中文AV制服乱伦| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 色99色| 日韩免费在线观看不卡| 蜜桃臀一区二区aV| 图色综合网| 五月丁香综合啪啪| 亚洲制服aⅴ中文字幕| 久久久偷拍| 九九九九九九九九九九九九九九九女| 欧美综合骚| 免费伦费视频在线观看| 香蕉国产精品麻豆亚洲欧美日韩| 久久老熟女| 超碰碰激情97+久| 亚洲最大91网| 欧美东京热精品A∨| 99热精品在线观看| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 欧美精品一区二区少妇免费A片| 超碰日韩美妻| 91色综合激情| 99综合网| 国产亚洲精品第一最新| 青青青国产手线观看视频2| 久久久久久少妇| 欧美性爱97超碰 | 肏逼福利网站| 熟妇无码视频三区| 色网综合网| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 蜜臀久久99精品久久久电影| 91操熟女视频| 香蕉色网| 久神马| 精品久久久久久亚洲| 秋霞久久亚洲精品成人| 久久伊人最新网址视频| 91亚州| 国产中午字一暮区| 免费97视频| 91jk色拍| 国产成人主播| 极品粉嫩少妇视频| 久艹伊人精品综合在线| 91丨九色丨东北熟女| 欧美日韩 强奸乱伦| 极品综合| 国产家庭乱伦性爱视频| 牛牛AV人人夜夜澡人人爽| 校园春色亚洲色图| 97se亚洲综合自| 少妇内射视频| 怡红院成人av| 艳尻美人妻| 欧美性区| 26UUU欧美日本| 国产色产精品在线观看| 欧美一二三级精品在线| 国产尤物AV尤物在线观看不卡| 极品色综合| 成人性生活高清视频在线播放| 97爱爱官网| 亚洲影视高清第一页| 国产精品国产| 欧美日韩亚洲少妇寂寞影院正在播放| 啊啊啊轻点在线观看| 日本精品九九九| 国产一区二区精品在线视频| 96麻豆精品一区二区三区| 青久久| 国内一区二区三区| 男人的天堂Va| 91精品国产91久久青草| 国产精品不卡一区二区三区av| 黑人免费福利视频| 欧美性爱十八禁| 日韩中文字幕二区| 精品网站9999| 亚洲情色在线| 东京男人天堂| 欧美性xxxxx狂欢| 91成人久久| 欧美啪啪女女| 91色碰| 四虎在线观看网站| 国产肏逼网站| 最近的最新的中文字幕视频| 婷婷爱五月| 欧美一区二区传媒| 欧美综合色,www| 加勒比海人人操超碰在线| 亚洲日韩一区电影| 久久最新视频免费观看| 婷婷探花久久精品一区| 欧美一级A一级a爱片久久| 视频黄色国产一级| 激情六月天| 97爱b| 天天综合站| 尤物网站91| 自拍偷拍 高清无码| 另类在线| 性感美女啊啊啊在线| 男人的天堂 在线一区| 国产自产自拍| 96AV精品| 欧美性高潮在线| 欧美传媒| http://qxhbdz.com| 国产精品天干天干综合网麻豆| 亚洲少妇自拍中文字幕懂色| 久9re热视频这里只有精品| 成人福利视频网| 爆乳免费黄网站| 在线 欧美 亚洲| 人妻另类 专区 欧美 制服| 8050午夜少妇无码| 992这里有精品| 2019亚洲男人天堂| 一区二区免费电影久久| 极品色www影院| 蜜臀AV一区二区三区激情综合| 91熟女视频网| 日本一本道A级黄色毛片试看60分钟| 伊人97超碰| 超碰97资源网亚洲| 天天干人人干天天日97| 日韩欧美亚洲自拍偷拍| 另类视频在线| 久久久性少妇| 操美女高潮抽搐白浆| 蜜桃久久精品一区二区三区| 天天综合91| 激情深爱五月天| 亚洲清纯综合| 竹菊影视国产一区二区| 国产av色网| 性在久久久久久| 东京热男人的天堂网| 3P丝袜熟女 色综合| 麻豆国产96在线| 97精品97久久| 国产午夜激片Av毛片不卡| 人妻在线大香蕉| 伊人久久综合影院精品久久久| av天堂影视中文在字幕在线中文 | 啊啊啊轻点在线观看| 亚洲AV无码AV吞精久久久久| 深夜激情| 久久婷色| 男人的天堂2019| 久久精品一区二区三区不卡| 国产高清成人免费视频| 中文字幕少妇色 | 天堂8在线新版官网| 日本二区不卡| 激情av| 白丝AV| 欧洲免费一区二| 欧美成人性爱视频在线播放| 青青草手机在线免费观看| 日日插夜夜| 白天啪啪晚上啪啪视频| 亚洲se电影| 亚洲av影音先锋| 激情文学亚洲| 中文字幕在线观看AV| 69视频入口| 免费亚洲国产精品久久一区| 国语人妻精彩刺激| 中国熟妇| 成人精品视频一区二区| 蜜乳AV免费观看| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 嗯,啊。舔我逼| 亚洲综合九九| 在线日韩日本亚洲国产| 91日产欧美| 精品人妻美妇91job| 亚州综| 天天看特黄的免费网站| 大香蕉黄色一区| 亚洲有码视频二区| 96久久久精品| 内射白嫩美女| 欧美日韩香蕉| 人妻一区二区三区视频| 婷婷激情四射| 亚洲和欧美裸体美女双飞视频| 黄色欧美性爱视频| 屁股久久久久久久| 蜜桃臀一区二区三区久久| 天天综和| 国产97亚洲| 人人摸人人干| 殴美大黄片| 大象AV在线| 丰满人妻一区二区中文| 婷婷丁香五月激情啪啪| 凹凸久久人人| 日本高清免费一本视频在线观看| av2014 日韩在线中文字幕| 91天美传媒精品| 超碰碰碰碰| 久久精品中文字幕观看| 操屄日韩| 97精品网| 精品国产a∨一区天美传媒| 青青伊人久久| 亚洲素人网| 日韩天堂av电影在线观看| 国产精品青草综合久久| 亚洲啪啪视频一区二区| 久久久久久亚洲Av无码| 91精品国产一区三一| 在线小视频| 粉嫩少妇自慰在线| 亚洲综合九| 一区麻豆 高清中文字幕| 五月天色综合| 亚洲少妇色| 五月天激情影院| 国产剧情AV不卡在线观看| 欧美一区二区日韩三区| 中文字幕黄片在线| 襙一襙| 极品国产内射| a片自拍直播视频| 欧美性爱一区二区| 欧亚 另类 久| 成人性生活高清视频在线播放| 中文字幕第95页| 日韩一级二级三级免费看完整版国语版| 97精品中文字幕| 精品一久久久| 97超碰免费人人性爱| 伊人久久大香蕉线AV五月天| yazhousetuoumei| 女人爽到高潮久久久| 女人爽到高潮久久久| 激情五月婷婷| 91 国产丝袜在线放观看| 亚洲熟妇图片| 丁香婷婷激情五月天无毒不卡 | 国产不卡免费在线视频| 韩国一级做A片免费的| 久久久久久AV无码免费网站| 综合五月婷婷| 999日韩中文精品观看视频。| 97青青操视频| 一本色道久久综合熟妇| 这里都是精品| 日韩啊V| 欧美日韩色综合网| 熟女突然公开看18禁影片| 高清成年美女黄网站免费大全 | 蜜桃狠狠色伊人亚洲综合 | 亚洲激情视频| 亚洲图片欧美在线视频| 国产女人高潮视频| 美腿丝袜高跟网免费视频免费视频| 中美日韩毛片| 热热色色综合| 青青久久艹| 亚洲天堂久久久久久粉红视频| J?P?NESEHD熟女熟妇伦| 亚洲欧美日韩综合在线尤物| 黄色大片一区二区密桃丝袜| 超碰午夜| 久久久久久久久国产| 老熟乱一区二区三区四区| 人妻干天天| 亚洲aV性爱| 在线女人91| 日韩 女同 综合| 日韩情色一区二区| 亚欧无码线免费观看视频| 欧美黄色片AAAAA| 日韩99神马视频播放片在线播放| 欧美在线视频播放| 97在线看| 激情综合久久| 性交一区二区在线播放| julia ann久久| 人人么人人操| 九九成人视频| 欧美天堂亚洲电影院一区在线播放 | 中文字幕AV乱伦| 日韩精品区二区三区不卡| 国产精品小视频一区二区三区| 午夜福利在线合集| 免费看黄片现成| 久久久久久久人妻| 99国产精品自在自在| 国产美女高潮| 91人妻中文| 中文字幕一区二区三区蜜臀| 1024精品在线| 亚洲制服欧美另类内射| 亚洲综合一| 黑人精品XXX一区一二区| 日本中文字幕在线视频| 亚洲偷91色| 偷拍亚洲熟女视频播放| 成人三一级一片aaa| 天堂av2019| 天天干人人乐| 美日韩成人| 成人在线午夜视频一区| 欧美少妇人妻| 伊人青青一区成人视频在线观看区| 国产97色在线 | 亚洲| 亚洲αv一区二区三区| 97色视频在线| 91久久青青草原精品| 爆乳免费黄网站| 黑人综合网| 五月天婷婷小说| 熟女熟妇伦久久影院毛片一区二区| 日逼逼免费看| 精品欧美日韩在线观看| 婷婷亚洲五月***久久| 99精品高潮| 国产精品无码论坛| 久肏视频字幕| 天堂蜜桃无码视频一区二区| 久久九色| 青娱乐蜜桃臀AV色婷| 国产午夜福利电影免费在线观看| 久久大线蕉一区| 精品九九九九九九| 亚洲少妇诱惑| 亚洲第一免费视频| 天天操天天日天天干| 91小视频| 亚洲综合伊人无码久久| 日本人体九九九九九九| 国产亚洲深夜激情| 国产亚洲欧洲在线观看| 精品久久久久久中文| 日本天天干天天日一区| 2024人人操人人摸| av激情亚洲五月天| 97精品国产手机| 黄aaaaaaaaaaaaaaaaaa色网站| 热G综合热G中文| 韩日精品四区| 国产视频一区二区三区在线免费观看 | 日本熟女中文字幕一区| 日日玩天天干| 欧美78p| 国产精品久久久久久高清无码免费看| 囯产精品强| 色婷婷aV一区二区三区麻豆综合| 亚洲av综合色区图片亚洲| 亚州国产成人精品女人久久| 99这里只有精品| 69视频入口| 欧美日韩中文字幕不卡| 天天弄欧美| 午夜电影在线观看无码专区| 懂色aV一区二区天美传媒| 日韩欧美大片免费高清啪啪| 91亚洲丝袜熟女| 精品视频123区小说区| 亚洲色图尤物视频| 久久伊人影院| 日韩电影天堂视频二区三区| 欧美日不卡| 成年人黄色小视频网站| 少妇久久久久久久| 97精品一区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 久久久久亚洲精品| 亚洲第一无码播放立川理惠| 国产午夜福利专区综合| 超碰99在线| 色香阁在线| 99操| 久久久久成人亚洲国产| 视频一区二区三区精品| 超碰色97| 超碰在线成人电影| 999九九九九国产动| 少妇人妻无码| 色综合中文字幕不卡| 日韩啪啪网| 免费看黄视频亚洲网站| 欧美一区二区三区另类精品| 国产自制av蜜乳| 加勒比无码毛片| 劲爆欧美人妖三区91| 亚洲一区二区久久久久| 日本高清视频xxxx| 日本成人免费一区二区三区| 欧美丝袜中文字幕07在线| 超碰97欧美日韩| 欧美黑人XXXⅩ高潮交| 一区在线观看中文字幕| 97欧美性爱| 日本操色导航| 久久精品毛片免费不卡| 日韩中文字幕精品一区在线| 伊人久久综合影院| av无线看| 国产宅男宅女在线观看| 自拍视频一区在线观看| 成人性爱电影网| 人妻精品视频一区二区| 精品久久人妻成人网| 国产操逼逼网| 欧美日韩免费性爱| 金莲网址| 熟女人妻一区二区三区| 亚洲一区二区中文字幕| 大香蕉丝袜一级片| 思思热在线观看| 东京日日夜夜| 天天欧美色| 97干com| 免费观看的av| 91男女啊啊啊| 少妇六月天| 久久久久ab| 中文字幕女同在线| 我爱操| 日本媚薬中文字幕在线| 青青在线视频日韩欧美| 精品美女久久久久| 日韩人妻中文视频| 日韩av女优在线免费一区| 久久婷婷国产一区二区色| 亚洲va综合va国产va中文| 丝袜AV一二三区| 日欧美色| 无码人妻毛片丰满熟妇精品区| av天堂加勒比| 亚洲一区二区三区在线激情| 99精品欧美一区二区三区桃色| 亚洲精品天堂久久A∨51成人漫| 欧美日韩中文亚洲v在线综合| 人妻熟女午夜精品在线| 发朗少妇买婬全视频中文| 国产夫妻一区二区| 欧美天天影院| 久99久视频| 日本午夜久久电影| 欧美狠狠弄| 嗯嗯啊啊的视频| 午夜九九九九九九| 免费一级黄色录像影片| 色5月婷婷| 97干天天| 少妇久久久久久久| 午夜福利免费福利视频| 夜夜操91744565| 亚91网| 中文字幕亚洲永久精品| 黄色AV影视| 欧美91色| 翔田千里Av在线| 五月天久久久| 欧美狠狠操| 久久久久久久九九九九| 手机在线A片| 美女在线H91| 女人久久久| 五月婷婷AV| 中文字幕精品乱码| 7777奇米影视久久| 99国内精品| 大香蕉性欧美| 三级三级三级a级全黄三| 亚洲自拍另类丝袜综合| 久久久久久久97| 男人的天堂一区三区| 91中文精品日韩欧美在线| 91精品人妻一品二品三品| 国产精品视频一区二区三区八戒| 加勒比AV网| 欧美后入| 日本 免费 一区二区三区 久久香蕉 | 久操91视频| 午夜精品久久久久久久男人的天堂| 欧美91久久久久| 免费福利视频中文字幕| 亚洲射综合网| 91视频精品| 最新欧美色网| 20cm女自慰在线日韩欧美| 久久久久久亚洲精品不卡人乳| 亚洲在线观看| 欧美顶级黄片AAAAA在线免费看| 美女淫穴| 内射小黄片| 中文字幕制服欧美久久一区| 欧美少妇人妻| 九九热精品| 激情小说亚洲色图| 欧美美女自慰一区二区三区| 白丝AV| 久久九九综合| 成人国产二区三区在线,男女精品。| 韩国一级做A片免费的| 天天日天天射天天干| 视频一区二区三区精品| 日韩精品三级片长长久久| 亚洲精品国产无码高清| 九九九九九九九九九九九九九九九女| 四虎影视永久在线免费| 狠狠97| 日韩精品一二三四| 神马久久久久久| 青青草亚洲一区| 日本性交操一区二区不卡系列| 97自拍一区| 亚乱色| 97人人色| 人妻精品一区二区全免费| 岛国大片国产| 暴力av在线| 91色艳| 激情色图| 亚洲污污网站| 99综合免费视频| 噜噜噜噜天天狠狠| 人人操天天爽| 日韩不卡a级视频专区| 欧美操逼录像国产黄色国产| 天天射网| 久久久无码av精| 在线观看国产黄色| 神马麻豆福利院| 老熟妇一区二区三区啪啪| 久久老子无码午夜伦不卡| 欧美熟妇精品黑人巨大91| 欧美操逼一二三区| 影音先锋视频在线| 欧美78P| 97国产色图| 九热视频| 18禁精品网站在线看| 亚洲人妻五月丁香婷婷| 久久久婷婷| 青青操97| 日韩性爱网址| 成人小说另类在线| 麻豆激情综合| 亚洲欧美大香蕉| 国产精品免费日韩| 蜜臀久久99精品久久久久久-DVD原版全| 9久久美女首页| 婷婷五月天激情网| 亚洲欧美综合区自拍另类| 中文字幕制服诱惑| 超碰97久| 国偷自 一区二区| 一区二区三区网站日日骚| 看大黄色大片原件| 成年人网站在线免费观看| 少妇色欲综合网2| 亚洲综合99999| 欧美熟妇精品黑人巨大一二三区| 97色干| yellow网站免费观看日韩高清无码| 69一区二区三区| 综合网亚洲1| 干B| 搡老女人老妇女老妇老熟女怎么读| 在线观看无码三级少妇| 在线播放免费av福利片| 日韩在线国产字幕| 97中文字幕九区| 97视频播放| 国产丁香精品露脸视频| 97欧美色综合| 亚洲日产专区婷婷| 97就爱干| 老女人91| 亚洲综合九| 成人精品水蜜桃久久久久久久| 日韩无码嘿咻黑热久| 欧美日韩国产高清在线一二三区 | 国产浮力影院第1页| 另类图片天天影视| 97精品一区二区三区免费| 日韩欧美~中文字| 熟女久久久| 亚洲综合射| 五月天加勒比啪| 嗯嗯啊啊视频一区二区三区| 超碰98综合网| 精品九九九九九九九九九| 男人的天堂VA在线| 91网站在线播放| 国产久9| 男人的天堂com| 国产色产精品在线观看 | 牛牛AV人人夜夜澡人人爽| 日韩大香蕉| 久久成人东京热人妻| 久久精品一区一起草| 91久热| 超碰99在线| 美女诱惑一区| 自拍内地三级在线观看| 午夜超爽| 亚洲国产欧美另类自拍| 亚欧性爱在线无码| 精品一区二区三区蜜桃臀赵总| 日韩欧美一级特黄大片| 天天日天天舔天天喷天天射| 美女尤物福利视频| 亚洲色图加勒比| 做爱福利视频一区二区| 超碰久在线天天做| 91中文字幕制服丝袜免费视频| 中文乱码字幕观看视频| 成全在线观看免费观看| 国产剧情AV不卡在线观看| a在线视频免费观看| 成年男人的天堂| 久久久99999久网站| 九九五月天| 欧美日日操| 亚洲熟女中文字幕在线| 神马视频久久久久久| 欧美色图片欧美色图| 亚洲久9| 人妻一二三区| 无码91| 91久久久老司机| 日韩97在线| 亚洲国产美女久久久久| 福利视频一区二区微拍| 亚洲国男人的天堂| 野狼激情网| 蜜区区视频79 | 欧美αv.com| 久久久夜夜嗨免费视频| 国内精品不卡无毒99999| 亚洲国产丝袜在线观看| 97超碰色色| 377p欧洲日本亚洲大胆| 精品超碰国产| 国产精品午夜成人福利| 台湾佬大香蕉| 综合第一页| 青草影院内射高潮| 久久久四区| 日韩欧美中文| 亚洲av热热色| 蜜臀久久99精品久久久久久婷婷| 伊人黄色片| 天天综合91在线| 91女优在线观看| 人人操人人插 - 百度 - 百度| 伊人97超碰| 色女网日韩| 天天射夜夜| 欧美精品久久久久久久丰满| 日韩Va亚洲va欧美Ⅴa久久| 91女网站| A 天堂| 五月天婷婷基地| 国产后入内射| 另类小色呦| 亚洲第一色页夜| 激情综合网激情综合| 欧美图片偷拍| 成人性交午夜免费片| 日韩激情毛片一级久久久| 蜜桃久久久久久久| 久久久久久久人妻丝袜| 久久综合九九| 久久大香蕉97| 日韩中文字幕视频在线观看| 亚av顶级裸体一区二区三区四区五区 | 日本熟女免费視颖| 色好看av| 精品一区二区国产日韩| 91动漫操逼视频| www.AV有限公司一区| 黄色片一区二区三区四区五区| 亚洲美女精品| 高清孕妇孕交| 一区二区三区无卡视频在线观看| 中国熟女老妇仑乱一区二区三区| 亚洲精品亚洲人成人网| 97天天摸天天爽| 亚洲 综合 欧美| juliaann丝袜| 精品四五区| 国产女大学生AV| 亚洲操操| 欧美啪啪啪91| 男人兔费天堂| 乱伦熟女论坛| 嗯嗯啊啊视频一区二区三区| 精品国产一区二区三区四区在线看 | 很黄很色的视频在线观看| 99国产精品久久久在线播放| 思思视频免费看网站| 九九九久久久久| 日韩无码黄色片| 在线洲亚线| 国产熟女少妇一区| 偷拍盗拍亚洲色图图片| 久久婷婷一区二| 日本高清免费一本视频在线观看| 国产九九九九九九| 久久精品美女一区| 99re超碰| 在线情色电影 91大| 人、人、摸,人、人、草| 国产免费小视频| 自拍二页| 丰满岳乱妇一区二区三区| 伊人久久亚洲色欲综合网站 | 欧美综合在线91| 欧美在线视频99| 性色AV蜜色av色欲av| 激情视屏国产乱伦强奸| 翔田千里AV无码秘 三区| 热久久国产精品视频大陆精品| 国语精品内射在线观看| 综合五月天| 佐山爱中文字幕| 人人操人人摸人| 日本爽爽爽爽爽爽免费视频| 久草精品一区| 成人午夜无码视频| 久久久久亚洲av综合波多野制衣| 97超碰色屌| 国产精品无码av嫩草| 97色97干| 9999久久久久| 91色艳| 日韩乱中文| 日日骚AV| 啪啪啪综合| 亚州色国| 国产农村一一级特黄毛片| 日韩av不卡在线看| 亚洲天堂2020| 九九热午夜欧亚国产视频| 青青草原人妻| 免费啪啪啪网站18岁| 奇米狠999| 久久AV无码AV| 亚洲AV在线资源| 97自拍一区| 野狼激情网| 国产精选三级在线观看| 午夜a成v人电影| 日韩欧美日韩| 国产熟妇 码视频户外直播| 很狠操| 中文激情网| 你懂得91| 一本色道久久综合精品婷婷| 自拍啪啪视频| 日韩人妻丝袜美腿中文| 啊啊啊啊啊啊啊好爽不要| 日韩丰满熟妇| 国产精品乱码久久久久| 久久久无码精品人妻二区| 九九九九精品一区| 亚洲一本色码中文字幕| 色一射色一射| 插日本熟女视频| 国产无码一二三区| 国产成人欧美一区二区三区的国产| 亚洲一卡二卡在线免费| 亚洲欧美日韩中文播放| 91精品国产综合久久久蜜臀酒店| 天天综合网视频91| Aa东京男人的天堂| 久久后入制服| 亚洲国产亚洲天堂| 精国久久一区二区三区98| 久久久精品中文字幕麻豆| 天天内射| 嗯啊不要在线| 亚洲国产第一页综合视频| 久久亚洲av成人无码国产| 在线只有精品| 色青青久久影视| 先锋激情∨在线视频播放| 黄色区免费观看中文字幕| 欧 美 自 拍 偷 拍| 女人与公拘交酡2020视频| 精品人妻1237| 久久精品超碰| 91久久精品美女高潮喷水| 九九AV| 三级片网站在线播放| 久久伊人大香蕉| av在线资源| 99色在线| 99这里只有精品| 中国熟妇| 伊人网免费视频| 精品美女久久久久| 99老司机精品视频在线观看| 亚洲αv一区二区三区| 最近2019中文字幕国语免费版| 日本日皮视频逼| 婷婷五月天基地| 狠狠热这里都是精品| 刺激性视频黄页| 日日日骚女人精品| 嗯嗯嗯嗯啊啊啊好紧好大| 麻豆性爱视频在线播放| 精品少妇一区二区| 丰满人妻区一区二区三| 999热这里只有精品| 亚洲无码视频免费在线观看网址!| 日韩熟女操逼| 强歼乱伦资源网| 色五91| 99re只有精品| 五月天婷婷社区| 精品三级在线专区| 国产黄色av大片网站| 丁香五月天视频| 欧美亚洲影视| 91亚洲影视| 伊人专区一区二区三区| 操逼天美3区| 首页亚洲国产高跟丝袜诱惑视频 | 精品国产一区二区三区久久久蜜臀| 夜夜夜久久| 91中文字幕在线观看| 老熟妇乱轮| 国产女人成人精品视频| 91女网站| 97资源久久| 99性爱在线观看| **一级毛片国产| 亚洲综合图片在线| AV中亚| 中文字幕在线日亚州9| 色色99| 男人综合网| av在线一区二区三区| 亚洲综合性感在线| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 国产精品香蕉| 在线可观看的黄色网址| 久久手机视直播| 亚洲第一页综合在线| 国产白嫩漂亮KTV在线| 夫妻四区五区六区| 高颜值美女口爆高潮浪叫| 中国一级特黄大片护士| 天天干夜夜一操| 欧美人妻中出| 黄色高清久久无码依人| 色欧洲| 蜜乳av首页| 国产在线激情| 嫩草影院在线观看精品| 久久熟女人| 男人天堂毛片| 欧美伊人久久综合网| 亚洲三级网址久久最新| 国产超碰欧美| 免费的黄片wwwwww| 日日日骚女人精品| 欧美精品日韩久久久九| 男人天堂.AB| 亚洲日韩天堂| 色99视频| 欧美激情综合网| 99色在线| 久久人人爽爽爽人久久久| 欧美第一页| 亚洲色吧网| 26uuu最新| 97干在线看| 欧美乱伦专区| 美女露胸露屁股| 日本韩国国产精品一区| 男人天堂.AB| 懂色中文一区二区三区| 久久夜色一区二区| 国产美女销魂在线观看不卡| 天天日日日射| 97人妻免费中文字幕| 亚洲精品蜜桃久久久久久久| 日韩免费高清大片在线| 98超碰日本| 新婚人妻扶着粗大强行坐下| 大香蕉99re| 插欧洲美女欧美精品| 人妻激情视频| 日本天天操| 98人妻精品一区二区色欲| 色综合潮| 岛国激情视频软件| 久久久久921| 婷婷成人五月天| 久久女人| 男人天堂日日夜夜| 岛国网址国产| 青青草一区二区高清无码视频| 亚洲va综合va国产va中文| 亚洲一区二区中文字幕| 97在线精品| …中文字幕亚洲乱,97人妻无码费视… | 亚洲乱码精品一区二区| 亚洲大色堂| aaaa少妇高潮大片| 日韩大香蕉| 99www.bibizy香蕉资源国产一区二区三区高清 | 亚州,欧美在线| 亚洲人成网www| yw尤物av无码点击进入麻豆| 91最新综合| 日韩亚洲国产视频| 欧中美三级一区二区三区| 性做久久久久久免费观看软件| 综合91网| 久久久婷婷| 午夜啪啪片| 婷婷10月天青娱乐| 少妇69中文| 欧美亚洲中文字幕| 91黑人狂躁丰满熟妇| 白丝AV网站| 五月天激情四射| 国产一区二区免费福利片| 久久久九| 好爽,再快点啊哈嗯嗯嗯嗯| 亚洲成人久久美女| 极品国产内射| 超碰欧美COM| 97欧美精品综合| 成人麻豆av电影网站| 精品日日人妻| 亚洲自拍青操视频| 中文有码第五页| www.91色综合| 免费黄色片。| 欧美日韩在线小说 | 99久久9| 精品国产一区二区三区在线播出| 2017天天操| 亚洲综合贴图91 | 97伊人| 日本国产欧美一区三区二区| 夜夜免费视频| 99国内精品| 影音先锋中文字幕日本好一区二区| 五月亭亭六月丁香| 亚洲女人91| 色哟哟av网址| 77国产精品| 亚殴在线| 亚洲日产专区| 探花激情视频| 精品国产一级久久| 久久这里是精品| 伊人操| 97亚洲自在精品在线观看| 伦理日韩国产久久| 啊啊啊啊啊啊好湿好爽视频| 熟妇视频一区二区三区在线观看| 久久久97| 日韩性爱电影一区| 天天艹天天日| 亚洲性爱免费电影| 丁香婷婷五月| 亚洲人成在线放东京热| 女人一区| 一区麻豆 高清中文字幕| 精品人妻1237| 天天影视综合网欧美精品| baisiav| 欧美精品四区| 狠狠操狠狠| 丁香六月婷婷综合| 婷婷色综合| 大香蕉乱伦视频网| 激情开心五月天| 亚洲国产激情国产av| 欧美精品久久久久久久久88| www.91逼逼.com| 亚洲日韩美女中文字幕乱| 久久社区一区二区三区| 亚洲一级性爱视频免费看| 色欲久久99精品久久| 四虎免费视频|