亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

C#微信小程序商城源碼實戰(zhàn):從本地部署到上線避坑指南

C#微信小程序商城源碼實戰(zhàn):從本地部署到上線避坑指南 簡介一份面向計算機相關(guān)專業(yè)畢業(yè)設(shè)計的微信小程序在線購物商城完整源碼。項目前端采用微信小程序原生框架后端基于C#與ASP.NET實現(xiàn)演示了商品瀏覽、購物車、訂單支付及后臺管理流程適合學習C#服務端開發(fā)和小程序聯(lián)調(diào)的開發(fā)者參考。壓縮包共1930個文件、約26.9MB主要包含480個.cs后端邏輯文件、125個.aspx頁面文件、140個.js腳本、23個.wxml與24個.wxss小程序結(jié)構(gòu)樣式文件并帶有.sql及.mdf/.ldf數(shù)據(jù)庫文件、.config配置文件和.pfx/.pem證書文件目錄結(jié)構(gòu)覆蓋頁面、業(yè)務邏輯、數(shù)據(jù)訪問與部署配置等層次。已有592人學習下載。整體代碼量較大典型頁面、接口和表結(jié)構(gòu)齊全可據(jù)此對照分析前后端數(shù)據(jù)通信、數(shù)據(jù)庫腳本及發(fā)布配置方法作為畢業(yè)設(shè)計或電商項目起步模板能明顯縮短搭建時間。1. 這個C#微信小程序商城源碼.zip到底值不值得花時間拆開看“基于C#的微信小程序在線購物商城源碼.zip”在資源站里經(jīng)常出現(xiàn)在“微信小程序項目實例”“PHP源碼”旁邊下載頁寫著“含完整前后端數(shù)據(jù)庫”。實際拿到手里面的東西一般就是三塊小程序前端目錄、C#后端工程、數(shù)據(jù)庫腳本。對正在做畢業(yè)設(shè)計、課程設(shè)計或者公司急著要一套可演示的商城Demo的人來說這個包確實能省不少事——你不需要從零搭登錄、商品列表、購物車和訂單流程。但我要先潑一盆冷水這份源碼不會自動變成能上線的商業(yè)產(chǎn)品它的價值在“看得懂、跑得起來、能改造”而不是解壓即用。我拆過好幾份這類資源結(jié)論一致真正讓你翻車的不是C#代碼本身而是數(shù)據(jù)庫連接、支付回調(diào)驗簽、域名白名單這些細節(jié)。這套架構(gòu)的本質(zhì)也很簡單微信小程序做界面和交互C#常見是ASP.NET Core Web API做后端服務中間用HTTPS JSON通信。全文的實戰(zhàn)思路就是圍繞這條鏈路怎么落地說開。2. 拆解源碼前先搞懂這套架構(gòu)C#后端 微信小程序前端的協(xié)作方式2.1 為什么購物商城選 C# Web API 而不是 Node/PHP技術(shù)選型理由我見過不少同學問“商城這種項目后端用Node不是更輕嗎PHP不是更快嗎”這些說法都有道理但當你手里只有這份C#源碼時選型理由其實已經(jīng)替你定好了。更重要的原因是從工程角度C# Web API 做商城后端有它的硬優(yōu)點。一是強類型。商品名稱、價格、庫存這些字段在C#里定義成字符串、decimal、int編譯期就能發(fā)現(xiàn)類型寫錯而不是等到小程序端拿到NaN才去排查。二是數(shù)據(jù)庫訪問層成熟。源碼里多用EF Core或SqlSugar商城最常見的CRUD、分頁、事務都能用很短的代碼寫清楚而且有遷移機制改完實體直接生成數(shù)據(jù)庫腳本。三是微信支付官方文檔和社區(qū)示例里C#版的貢獻度一直很高。我遇到支付回調(diào)、退款、賬單對賬這類偏門接口搜出來的可用代碼段一大半是C#寫的。對著源碼里的支付模塊改比用其它語言重新翻譯一遍要省力得多。當然C# Web API也有煩的地方Windows部署、IIS或系統(tǒng)d守護進程、開發(fā)機要裝Visual Studio或.NET SDK。如果你最后要部署到便宜的Linux云主機就得接受ASP.NET Core的跨平臺發(fā)布方式——先dotnet publish生成獨立文件再用Nginx反向代理這一套在第6章我會給出做法。但就商城這種“登錄-下單-支付-查訂單”的常規(guī)形態(tài)C#的穩(wěn)定性和可維護性絕對夠撐起你的第一個正式項目。2.2 源碼包里的三類核心文件小程序端、C#后端、數(shù)據(jù)庫腳本解壓之后別急著雙擊 .sln先看目錄結(jié)構(gòu)。我?guī)丝催^的商城源碼包基本都有一個固定套路一個文件夾放小程序前端一個文件夾放C#后端外加一個 .sql 文件或數(shù)據(jù)庫腳本目錄。下面這張清單適合你對照自己手里的包做分類分類常見目錄/文件作用小程序前端miniprogram/、app.js、app.json、pages/頁面、路由、全局配置、用戶登錄態(tài)小程序工具層utils/request.js、utils/util.js封裝wx.request、日期格式化C#后端工程Server/、Api/、WebApi/整個解決方案所在目錄C#核心代碼Controllers/、Models/、Services/接口入口、實體類、業(yè)務邏輯配置appsettings.json、launchSettings.json數(shù)據(jù)庫連接、支付參數(shù)、端口數(shù)據(jù)庫腳本db.sql、database.sql、Scripts/建庫、建表、初始化菜單和數(shù)據(jù)找不到.sln也不用慌。很多資源只放了Api工程目錄沒有解決方案文件到時候用Visual Studio打開文件夾或者用dotnet命令直接指向.csproj文件運行就行。我一般拿到包之后第一件事不是讀代碼而是先戰(zhàn)術(shù)后撤一步把里面所有.csproj文件找出來。商城項目常見兩層或三層結(jié)構(gòu)二層的Controllers直接寫業(yè)務三層的分離了Services和Repositories。你打開Visual Studio的解決方案資源管理器按“Web”和“Application”兩個關(guān)鍵詞過濾基本就能定位到啟動入口。2.3 小程序與C#后端的通信鏈路HTTPS調(diào)用、JSON序列化、鑒權(quán)Header小程序端不能直接連數(shù)據(jù)庫這是常識。它只能通過 wx.request 發(fā)HTTP請求到C#端的接口。而C#端作為Web API接收請求后從數(shù)據(jù)庫取數(shù)把結(jié)果序列化成JSON通過MessagePack或System.Text.Json返回。整個過程最容易被新手忽略的就是所有數(shù)據(jù)都要走公共網(wǎng)絡所以必須用HTTPS并且微信小程序在正式環(huán)境會強制校驗請求域名。先看小程序端最常見的請求封裝通常放在 utils/request.js 里我見過無數(shù)個版本核心思想都差不多// 小程序端 utils/request.js const BASE_URL https://yourdomain.com/api; function request(path, data {}, method GET) { return new Promise((resolve, reject) { wx.request({ url: BASE_URL path, method, data, header: { Content-Type: application/json, Authorization: wx.getStorageSync(token) ? Bearer wx.getStorageSync(token) : }, success: (res) { if (res.statusCode 200 res.statusCode 300) { resolve(res.data); } else { reject(res); } }, fail: reject }); }); } module.exports { request };這段代碼的邏輯不復雜BASE_URL 是整個后端接口的公共前綴所有請求共用header 里的 Authorization 帶上登錄后緩存的token這是商城接口鑒權(quán)最通用的做法。參數(shù) path、data、method 分別對應接口路徑、請求體和HTTP方法。注意在 success 回調(diào)里不能直接把 res 返回要判斷 statusCode因為微信小程序的 wx.request 在HTTP 404、500等情況下也會走進 success而不是 fail。C#后端接收請求的入口就是一個個 Controller。比如商品列表接口常見寫法長得像下面這樣// C# 后端 Controllers/ProductController.cs [ApiController] [Route(api/[controller])] public class ProductController : ControllerBase { private readonly IProductService _productService; public ProductController(IProductService productService) { _productService productService; } [HttpGet] public async TaskIActionResult GetList([FromQuery] int page 1, [FromQuery] int pageSize 10) { var result await _productService.GetPageAsync(page, pageSize); return Ok(new { code 0, data result }); } }這里值得說的細節(jié)是 [FromQuery] 和 [FromBody] 的區(qū)別。小程序端如果通過 GET 把查詢參數(shù)拼在URL上C#就用 [FromQuery] 接如果 POST 用JSON體C#默認會自動反序列化到模型一般不用顯式聲明 [FromBody]。老源碼里容易混用我看到的一個高頻報錯就是“參數(shù)綁定失敗”表象是小程序端拿到的返回是400日志提示找不到page參數(shù)十有八九是請求方式和小程序端對不上。3. 把源碼在本地跑起來從部署C#后端到微信開發(fā)者工具加載小程序的完整命令3.1 環(huán)境準備清單Visual Studio / .NET SDK / 微信開發(fā)者工具版本匹配動手之前先核對環(huán)境。這套源碼如果目標是“本地跑通”你最少需要裝三樣東西Visual Studio 2022 或 .NET SDK前者適合打開工程直接按F5后者適合命令行操作。老源碼可能是.NET Framework的那就得用Visual Studio 2019并勾選“.NET桌面開發(fā)”工作負載。微信開發(fā)者工具官網(wǎng)下載穩(wěn)定版即可用于導入小程序目錄、預覽頁面。數(shù)據(jù)庫多數(shù)商城包用的是SQL Server也有用MySQL的。你看到 appsettings.json 里有“Server.;DatabaseShopDb;...”就是SQL Server看到“MySqlConnection”或“ProviderMySql”就是MySQL。版本匹配這里我吃過虧。有一份包是.NET Core 3.1寫的我直接用.NET 8的SDK去跑 dotnet restore提示“架構(gòu)不兼容”或“包版本不受支持”。原因是EF Core和運行庫的版本對不上而NuGet還原時不會自動幫你降級。更穩(wěn)妥的做法是先看 .csproj 文件里的 TargetFramework 和目標框架再決定裝哪個SDK。如果是 netcoreapp3.1就裝.NET Core 3.1運行時如果是 net6.0裝.NET 6。別為了追新拿.NET 8硬跑老項目不然會被NuGet依賴折磨到懷疑人生。3.2 還原NuGet包并啟動C# Web APIdotnet restore 與 launchSettings 修改環(huán)境確認后用命令行啟動后端是最可靠的方式。先把當前目錄切到 .csproj 所在路徑然后執(zhí)行cd C:\shop-code\Server dotnet restore dotnet rundotnet restore 的作用是根據(jù) .csproj 里聲明的 PackageReference 把NuGet包拉下來。這一步如果報錯先看網(wǎng)絡是否能訪問 nuget.org內(nèi)網(wǎng)環(huán)境就需要給NuGet換鏡像源常見的做法是修改 NuGet.Config 里的 repository。dotnet run 之后控制臺會打印監(jiān)聽地址一般默認是 http://localhost:5000 或 https://localhost:5001。這些值來自 Properties/launchSettings.json我建議你先打開這個文件看一眼{ profiles: { ShopApi: { commandName: Project, launchBrowser: true, applicationUrl: http://localhost:5000;https://localhost:5001, environmentVariables: { ASPNETCORE_ENVIRONMENT: Development } } } }這里最關(guān)鍵的是 applicationUrl。本地聯(lián)調(diào)時我們只要HTTP端口就夠了不用浪費時間去簽HTTPS證書所以我會把 https://localhost:5001 直接刪掉只留下 http://localhost:5000。但注意真機測試微信小程序時你沒法用localhost訪問你的電腦必須讓手機和電腦處在同一網(wǎng)段并監(jiān)聽局域網(wǎng)IP。這個坑在第5章避坑里我會專門講。3.3 配置微信小程序appid、合法域名和request基地址三步聯(lián)調(diào)后端服務起來了現(xiàn)在處理小程序端。打開微信開發(fā)者工具選擇“導入項目”選中源碼包里的小程序目錄一般里面有 app.js 的那個文件夾就是。導入時要注意你的登錄身份是否有該小程序的管理權(quán)限。如果沒有正式appid就選“測試號”。測試號允許你在本地請求任意HTTP或HTTPS域名但真機預覽會受限。接著打開小程序端 app.js 或 config.js 文件找到類似于 globalData 或 constant 里的 baseUrl 配置。我見過很多寫法但統(tǒng)一做法是把后端地址抽出來// 小程序端 app.js App({ globalData: { baseUrl: http://localhost:5000 } })注意這里填的地址必須和C#后端的監(jiān)聽地址一致。如果開發(fā)者工具是在同一臺電腦上localhost 可以通如果是真機預覽這里要改成你電腦在局域網(wǎng)里的IP比如 http://192.168.1.108:5000。最后微信開發(fā)者工具右上角的“詳情—本地設(shè)置”把“不校驗合法域名、web-view業(yè)務域名、TLS版本以及HTTPS證書”打上勾。這是開發(fā)階段的后悔藥幫你繞過正式域名校驗。不要把這個勾選當作生產(chǎn)環(huán)境的配置等真機上線微信團隊會強制要求HTTPS。3.4 用瀏覽器和Postman驗證后端接口Swagger與最小測試用例后端和前端都準備好先別急著點小程序頁面。我們先用瀏覽器直接訪問幾個核心接口驗證后端邏輯是否正常。如果源碼里有Swagger啟動后訪問 http://localhost:5000/swagger/index.html你會看到一個帶UI的接口列表。這是最快確認Controller是否注冊成功的方式。沒有Swagger也沒關(guān)系手動在瀏覽器地址欄敲一個接口試試。商城Demo里最常用的驗證接口是商品列表和登錄接口。比如curl http://localhost:5000/api/Product?page1pageSize10如果返回一段JSON里面包含 code 和 data 字段說明C#后端到數(shù)據(jù)庫這條鏈路是通的。如果瀏覽器報500優(yōu)先去控制臺看最后幾行日志最常見的錯誤是數(shù)據(jù)庫連接字符串寫錯??吹健癈annot open database”就是SQL Server連不上看到“Access denied for user”就是MySQL賬號權(quán)限不對看到“table doesnt exist”則是數(shù)據(jù)庫腳本沒導入或者表名大小寫映射出問題。用Postman測的時候注意一個小細節(jié)商城接口把鑒權(quán)放在了Header里測試登錄接口后會把返回里的token復制到Postman的Authorization頭。如果直接調(diào)用下單接口不帶token返回401或403是正常的別慌。4. 購物車、訂單與支付回調(diào)解密核心業(yè)務模塊的源碼走讀與改造點4.1 商品列表接口的讀取邏輯從數(shù)據(jù)庫到JSON返回的分頁寫法商城頁面打開第一個請求必然是商品列表。我們讀源碼時優(yōu)先看這個接口的實現(xiàn)。一個質(zhì)量合格的商城后端商品列表不會是“一次性查出所有記錄”而是分頁返回。常規(guī)實現(xiàn)如下// Services/ProductService.cs public async TaskPageResultProductDto GetPageAsync(int page, int pageSize) { var query _db.Products.Where(p p.Status 1); var total await query.CountAsync(); var items await query .OrderByDescending(p p.Id) .Skip((page - 1) * pageSize) .Take(pageSize) .Select(p new ProductDto { Id p.Id, Name p.Name, Price p.Price, CoverImage p.CoverImage }) .ToListAsync(); return new PageResultProductDto { Total total, Items items }; }這段代碼的核心邏輯是先用 CountAsync 拿到符合條件Status1的記錄總數(shù)再用 OrderByDescending 排序最后用 Skip 和 Take 截取某一頁。這里隱藏著一個應屆生容易翻車的點如果先Skip再OrderBy有些數(shù)據(jù)庫會報錯或者得到無序數(shù)據(jù)。務必保證順序是“Where - OrderBy - Skip - Take”。我在代碼審查里見過有人把 OrderBy 寫在 Skip 后面然后首頁數(shù)據(jù)每次都不一樣排查了半天竟是這一行順序問題。另外ProductDto 是專門給前端返回的模型不要直接把數(shù)據(jù)庫實體 Product 暴露給小程序。我看到過把內(nèi)部字段 UserId、CreatedAt 全都返回給前端的寫法這不安全。改造點很簡單建一個 DTO 類只放前端要的字段再用 Select 做映射。源碼里如果沒有 ProductDto建議你加上后面加字段會省心很多。4.2 購物車數(shù)據(jù)是存本地Storage還是C#服務端兩種方案的取舍購物車是商城項目的分水嶺。很多Demo為了省事把購物車數(shù)據(jù)存在小程序端的 Storage 里說“反正用戶沒登錄也能加購物車”。這個方案在真實商城項目里根本撐不住用戶換手機、清緩存、小程序崩潰重裝后購物車全沒了而且用戶在一臺手機上加入購物車想在另一臺設(shè)備上繼續(xù)購物做不到。成熟的源碼工程設(shè)計是把購物車放服務端。后端用一張 CartItem 表至少包含 Id、UserId、ProductId、Quantity、Selected 這幾個字段。用戶每次加購小程序調(diào)用接口// Controllers/CartController.cs [HttpPost] public async TaskIActionResult Add([FromBody] CartAddDto dto) { if (dto.Quantity 0) return BadRequest(new { code 1, msg 數(shù)量不合法 }); var userId GetUserIdFromToken(); // 從JWT中解析 var cartItem await _db.CartItems .FirstOrDefaultAsync(c c.UserId userId c.ProductId dto.ProductId); if (cartItem null) { cartItem new CartItem { UserId userId, ProductId dto.ProductId, Quantity dto.Quantity, Selected true }; _db.CartItems.Add(cartItem); } else { cartItem.Quantity dto.Quantity; } await _db.SaveChangesAsync(); return Ok(new { code 0, msg 已加入購物車 }); }這里值得關(guān)注的是 GetUserIdFromToken() 這個方法。很多商城源碼會有重復代碼——在每個Controller里手寫解析token一長串邏輯。正確做法是定義公共方法或過濾器。你在改造時如果發(fā)現(xiàn)每個接口都重復貼了一段“payload.Substring(…)”建議把它抽到公共類這是高內(nèi)聚的一個很實在的改進。另外加入購物車要確認用戶選項是否選中的狀態(tài)有些源碼做成加完就把整個購物車覆蓋返回這會丟失用戶對某個商品勾選的記憶。本地Storage不是完全不能用它適合存那些服務端不需要持久化的臨時狀態(tài)比如購物車界面的勾選動畫狀態(tài)、結(jié)算單里的備注草稿。核心購物車數(shù)據(jù)一定要走后端。4.3 微信支付統(tǒng)一下單與回調(diào)驗簽源碼里最值得復用的部分支付是整個商城源碼里最值錢的部分。小程序端調(diào)不起支付接口這只是第一步真正硬核的是后端跟微信支付的對接。標準流程是小程序把訂單信息發(fā)給C#后端C#后端調(diào)用微信支付的“統(tǒng)一下單API”拿到 prepay_id再生成商戶簽名返回給小程序的 wx.requestPayment用戶確認支付后微信服務器把支付結(jié)果回調(diào)到我們的后端指定接口。這中間驗簽最容易被抄錯。很多源碼里驗簽是這么寫的// Services/PayService.cs —— 回調(diào)驗簽核心邏輯 var sign reqData[sign]; var sortedParams reqData .Where(k k.Key ! sign) .OrderBy(k k.Key) .Select(k ${k.Key}{k.Value}) .ToList(); var stringA string.Join(, sortedParams); var stringSignTemp stringA key payOptions.ApiKey; var calcSign Md5(stringSignTemp).ToUpper(); if (calcSign sign) { // 驗簽通過更新訂單狀態(tài) }這里有三處坑改造的時候要看著。一是排序規(guī)則。微信支付官方要求參數(shù)按 ASCII 碼升序排列很多源碼用 OrderBy(k k.Key)默認語義就是按枚舉器對 string 做字典序排序這點沒問題但如果你為了好看改成“按出現(xiàn)順序”就廢了。二是空值處理。官方文檔明確說參數(shù)為空的不要參與簽名源碼里如果沒有過濾空串要補上Where(k !string.IsNullOrEmpty(k.Value))。三是MD5大小寫。微信支付要求簽名結(jié)果轉(zhuǎn)大寫但如果源碼里先轉(zhuǎn)小寫再比較回調(diào)永遠通不過。我建議你改動后先打印兩邊簽名再比較別盲改密鑰。支付回調(diào)地址是在小程序端調(diào)用 wx.requestPayment 時通過統(tǒng)一下單傳入的 notify_url 參數(shù)指定的。很多源碼包用的地址是 http://localhost:5000這顯然收不到微信服務器的回調(diào)。本地調(diào)試時可以用內(nèi)網(wǎng)穿透工具暴露一個公網(wǎng)HTTPS地址但正式配置一定要改成你的線上域名且必須是用ICP備案過的。支付回調(diào)里還要做冪等如果同一筆訂單被回調(diào)兩次第二次不能把訂單狀態(tài)從“已支付”改回“待支付”要在校驗訂單狀態(tài)處加個判斷。5. 避坑這5個問題讓新手部署時最容易翻車附排查與修復方法5.1 現(xiàn)象小程序端 request 報 “url not in domain list” 或 “TLS版本過低”這是我被問到最多的問題。開發(fā)環(huán)境一切正常真機預覽或體驗版時所有請求全部失敗控制臺提示 “url not in domain list”或者 “安信TLS版本過低”。原因很簡單微信小程序的正式環(huán)境綁定了 request 合法域名且要求該域名已備案、必須HTTPS、TLS版本不能低于1.2。解決登錄微信公眾平臺在小程序管理后臺的“開發(fā)管理—開發(fā)設(shè)置—服務器域名”里把后端接口的HTTPS域名加進 request 合法域名。域名不能帶 http:// 前綴也不能是IP或localhost。如果提示TLS版本過低檢查服務器上的SSL證書配置Nginx里把 ssl_protocols 設(shè)置成 TLSv1.2 TLSv1.3并重啟Nginx。本地開發(fā)用測試號可以暫時忽略域名校驗但看不到線上真實表現(xiàn)。我的習慣是盡量早配一個正式的HTTPS域名越晚配越被動。5.2 現(xiàn)象C#后端啟動后接口500查看日志發(fā)現(xiàn)是數(shù)據(jù)庫連接字符串問題現(xiàn)象是瀏覽器訪問接口返回500而不是404或JSON??刂婆_日志往往寫著 “Cannot open database” 或者 “Login failed for user sa”。原因是源碼包里自帶的連接字符串是針對作者本機數(shù)據(jù)庫寫的你本地如果沒有同名數(shù)據(jù)庫和賬號自然連不上。解決打開 appsettings.json找到 ConnectionStrings 節(jié)點改成你自己的數(shù)據(jù)庫。比如原來是Server.;DatabaseShopDb;Usersa;Password123456如果用的是Windows認證就改成Server.;DatabaseShopDb;Trusted_ConnectionTrue;。如果SQL Server服務叫SQLEXPRESS需要寫成Server.\\SQLEXPRESS;...。改完重啟 dotnet run。這里我有一個習慣先把數(shù)據(jù)庫腳本導入成功再用 SQL Server Management Studio 的連接字符串填到配置里盡量從 Studio 的“連接屬性”復制完整連接串避免少寫一個分號或選項。5.3 現(xiàn)象局域網(wǎng)真機預覽時連不上后端開發(fā)者工具卻正常開發(fā)者工具在小程序端模擬器里請求本機后端沒問題但用手機掃碼真機預覽后所有請求都失敗。原因有兩個一是手機和電腦不在同一個局域網(wǎng)二是電腦防火墻攔了5000端口。解決用命令ipconfig找出你電腦的IPv4地址比如192.168.1.108把小程序里 baseUrl 改成http://192.168.1.108:5000。然后在Windows防火墻的“高級設(shè)置—入站規(guī)則”中放行5000端口或者干脆在啟動時用dotnet run --urls http://0.0.0.0:5000強制監(jiān)聽所有網(wǎng)卡。很多源碼默認只監(jiān)聽 localhost所以即使你改對了IP也白搭。注意真實項目里微信的登錄要在微信公眾平臺配置業(yè)務域名或下載校驗文件測試環(huán)境用 IP 訪問很容易踩這個雷建議早點上正式域名。5.4 現(xiàn)象Newtonsoft.Json 與 System.Text.Json 混用導致字段大小寫對不上源碼里有些接口返回字段是駝峰如 productName有些返回的是帕斯卡如 ProductName小程序端拿到的數(shù)據(jù)總有幾個字段是 undefined。原因是老版本用 Newtonsoft.Json默認把它序列化成與屬性名一致新版本用 System.Text.Json默認序列化會把C#的帕斯卡名字轉(zhuǎn)換成小寫開頭。如果兩種情況混用前后端對不上就是必然。解決統(tǒng)一JSON序列化配置。在 Program.cs 或 Startup.cs 里加上下面的代碼builder.Services.AddControllers() .AddJsonOptions(options { options.JsonSerializerOptions.PropertyNamingPolicy null; options.JsonSerializerOptions.PropertyNameCaseInsensitive true; });這里把 PropertyNamingPolicy 設(shè)為 null表示保持C#屬性的原始大小寫不變PropertyNameCaseInsensitive 設(shè)為 true表示反序列化時忽略大小寫小程序端用大寫或小寫都能綁上。如果源碼里還在用 Newtonsoft那你就在 AddNewtonsoftJson() 里把 ContractResolver 設(shè)成 CamelCasePropertyNamesContractResolver兩邊選擇一個統(tǒng)一策略。我最煩這個坑因為報錯不是500而是靜默地返回undefined排查時間很長。5.5 現(xiàn)象IIS發(fā)布后上傳圖片404虛擬目錄配置錯位本地開發(fā)時圖片上傳讀取一切正常發(fā)布到Windows服務器的IIS后商品圖片全部404提示找不到文件。原因通常是源碼里圖片的物理路徑寫死了相對路徑比如wwwroot\uploads而 IIS 的工作目錄并非項目發(fā)布目錄或者發(fā)布時未包含 uploads 文件夾。解決先把發(fā)布目錄里有沒有 uploads 文件夾確認一遍沒有就手動建一個并給 IIS 站點的應用程序池用戶設(shè)置寫入權(quán)限。然后檢查源碼中圖片保存路徑的寫法。推薦改成基于 IWebHostEnvironment 的路徑var uploadsDir Path.Combine(_env.WebRootPath, uploads); if (!Directory.Exists(uploadsDir)) Directory.CreateDirectory(uploadsDir);不要在代碼里寫死C:\inetpub\...。另外小程序訪問圖片的URL要直接映射到https://你的域名/uploads/xxx.jpg不要走代理還把虛擬目錄路徑漏掉。我見過最離譜的錯誤是IIS里添加的虛擬目錄叫 files代碼里卻寫/upload名字不對應圖片自然就404了。建議在瀏覽器里打開圖片地址看具體報錯是404還是403逐層排查。6. 讓商城源碼變成能上線的產(chǎn)品從Demo到生產(chǎn)的三步加固與一個關(guān)鍵技巧6.1 先刪掉源碼里的默認賬號和弱口令這類源碼包為了演示方便通常會在數(shù)據(jù)庫初始化腳本里塞進一個 admin / 123456 的管理員賬號甚至有的在 C# 代碼里硬編碼了一個萬能token。上線前你必須刪掉這些并在用戶表里確認沒有“上帝賬號”。我的做法是直接重跑數(shù)據(jù)庫腳本把 Seed 部分的管理員密碼字段改成隨機字符串或者換成自己通過 BCrypt 生成的新密碼。同時檢查 Controllers/ManagerController 之類的后臺接口有沒有缺少鑒權(quán)。Demo源碼里后臺接口裸奔的情況非常常見不補就上線等于裸奔。6.2 用 dotnet publish 發(fā)布并配合 Nginx 反向代理生產(chǎn)環(huán)境我推薦先dotnet publish -c Release -o ./publish再把 publish 目錄整體拷貝到服務器。如果服務器是 Linux用 Nginx 做反向代理監(jiān)聽443端口并轉(zhuǎn)發(fā)到本地的5000端口如果是 Windows用 IIS 建站點應用程序池選“無托管代碼”。發(fā)布完成后一定要把 appsettings.json 里 ConnectionStrings 和 Pay 相關(guān)密鑰換成正式環(huán)境的值并確保服務器的時間是網(wǎng)絡同步的微信支付回調(diào)對時間偏移很敏感。6.3 關(guān)鍵技巧給后端接口加一個請求日志中間件開發(fā)時我們可以依賴控制臺日志但上了生產(chǎn)接口出錯經(jīng)常是“黑匣子”我們既不知道請求參數(shù)也不知道返回內(nèi)容。所以我每次接手商城源碼第一件事就是加一個最簡請求日志中間件把路徑、耗時、狀態(tài)碼和關(guān)鍵入?yún)⒂涗浵聛韕ublic class RequestLogMiddleware { private readonly RequestDelegate _next; private readonly ILoggerRequestLogMiddleware _logger; public RequestLogMiddleware(RequestDelegate next, ILoggerRequestLogMiddleware logger) { _next next; _logger logger; } public async Task InvokeAsync(HttpContext context) { var stopwatch Stopwatch.StartNew(); await _next(context); stopwatch.Stop(); _logger.LogInformation( {Method} {Path} - {StatusCode} in {Elapsed:F2}ms, context.Request.Method, context.Request.Path.Value, context.Response.StatusCode, stopwatch.Elapsed.TotalMilliseconds); } }這個中間件不復雜但它能幫你快速區(qū)分一件事報錯到底發(fā)生在前端還是后端。我經(jīng)歷過一次線上特價商品超賣頁面提示“請求失敗”但看日志發(fā)現(xiàn)接口全部200說明是前端數(shù)據(jù)渲染邏輯出錯后來又在另一單查不到訂單時發(fā)現(xiàn)日志顯示401才知道是登錄態(tài)過期沒做自動刷新。日志不會說話但它能告訴你往哪個方向查。把這個中間件加在 Program.cs 里用app.UseMiddlewareRequestLogMiddleware();注冊即可。這些加固做完你的商城就比原始的Demo包往前邁了一大步。我拆過很多源碼包最后能真正上線的人往往不是技術(shù)最炫的而是那些愿意把默認密碼刪掉、把日志加上、把數(shù)據(jù)庫連接串搞清楚的人。這套組合拳打下來至少能避免上線后第一個晚上就被用戶碰到404、500和支付掉單。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久艹艹艹| 免费观看国产不卡av| 日本一区二区三区精品| 狠久久| 国产精品嫩草影院午夜两性| 五月天色综合| 国精综合一二三区影视| 成人性交午夜免费片| 蜜臀无码视频在线观看| 性色av网站| 最新欧美色网| 久久超碰天天| 不卡中文字幕aⅴ在线| 一本色道综合久久欧美| 97超碰亚洲| 欧美日韩电影成人在线| 久久九精品| 一区二区三区不卡视频| 丁香六月东京热| 国产精品视频电影| dy888午夜老子影视达达兔| 一区二区三区精品久久| 91日产欧美| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 欧美第一页| 天天综合日韩网| 人人妻人人爱人人玩| av在线资源| 91亚洲黑人| 夜夜骑日日| 日韩AV无码中文一区二区| 国产精品乱码久久久久久久久久久久| 性91| 99久在线精品99re8| 亚洲一欧洲中文字幕在线 | 9丨久久九九九| 可以免费观看的av| 操逼网站网站| 99热 按摩 日韩| 久操网址| 久久国产精品m码| 国产大学生口爆吞精合集| 欧美无圣光在线| 乱伦1色页| 国产美女激情| 国产精品青草综合久久| 超碰午夜| 老女人综合网| 中文字幕第95页| 日韩在线人妻网站| 91精品国产高清久久久久久,亚洲成人| 亚洲自拍欧美色综合| 国产1769在线| 日韩无码一级黄色av片| 亚洲图片 激情小说| 欧美操逼熟女| 亚洲丝袜综合| 国际精品久久久| 97视频在线视频| 色盈盈影院| 操碰91| 日本黄色大片一级视频免费麻豆| 91高清欧美| 性色中出| 久久精品亚洲婷婷| 无码自拍SM| 福利视频香蕉免费一区二区在线| 激情五月综合开心五月| 国产在线能看的你懂的| 男啪女色黄无遮挡免费观看| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 69少妇一区二区| 亚洲怡春院| 激情综合五月| 蜜臀精品1区2区| 老鸭窝亚洲毛片| 亚洲一区二区三区麻豆传媒| 日本超碰色精品| 亚洲污一污二| 大香蕉碰碰| 操婷婷逼| 久久国产对白激情浪潮| 久久妇| 欧美综合色| 9久久美女首页| 很黄很污的免费网站| 天无日色综合| 91欧美偷拍| 江都AV在线| 99热成人| 97人人干| 欧美在线综合| 亚洲啪啪综合?v一区综合精品区| 啪啪视频亚洲第一 | 亚洲精品成人激情在线| 无码丰满熟妇一区二区浪潮AV| 欧美Ⅴ性爱| 亚洲天堂在线怕怕视频 | 黄色免费网页无码| 亚洲棕合电彰| av2014 日韩在线中文字幕| 丰满人妻一区二区三区免费| 天天色黄色影院天天操| 欧美人妻精品一区二区| 99爱在线视频| 亚洲男人的天堂一区二区| 中文字幕 一区二区 亚洲无码| 亚洲91综合| 男人的天堂va在线| 日本岛国黄色网址| 亚洲91射| 无码外流操逼视频| 狠狠操狠狠| 午夜精品人妻二区三区| 日本一级真人黄色性爱视频| 亚洲精品影视老司机| 99热在线播放| 亚洲综合20p| 97色婷婷| 97在线视频观看免费| 天天看精品动漫视频一区| 偷拍自拍在线视频观看| 九九九九日本 | 久久久蜜桃臀无码视频| 欧美性爱系列| 啊啊啊啊啊啊在线| 日产国产精品中文久久婷婷| 国产精品免费1区2区视频| 青青草原人妻| 天天射天天操天天干天天吃2018 | 亚洲一区中文精品| 欧美三级不卡| 无码不卡八戒| 日本大香蕉| 精品国产91内射久久| 久久精精区一区二区一蜜桃一区二区| 黄色视频高清无码网站| 亚洲色图第四色| 91GD.COM| 涩涩涩综合| 久久精品国产久精国产| 欧美亚洲色图另类国产| 69丨亚洲丨精品丨入口免费播放| 色欲日韩欧美在线一区| 中文久久96| 日本十八禁免费看污网站| 台湾佬中文娱乐网久久久久久久久久com | 日韩超碰97| 99在线精品视频| 91N综合网| 久久直播国产| 国产又黄又粗的视频| 欧美热图99| 97色妞| 殴美在线AⅤ| 亚洲精品欧洲色| 香港久久久| 日韩丝袜二区| 亚洲一区二区三区婷婷| 啊啊啊啊操死我了| 91强奸乱轮| 国产精品美女在线一区| 午夜操逼不卡| 久久久久免费看少妇A片特黄| 欧美综合色图网| 欧美色图私拍91| 欧美黄色大香蕉一区二区| 农村妇女精品一二区| 亚洲综合另类欧美久久久| 成全在线观看免费观看| 国产黄色影片在线观看| 啊啊啊com| 曰韩精品九九无码 | 动漫片子网站3黄| 美国一区二区三区视频| 草草影院日本第一页| 岛国片在线播放| 日日插夜夜| 97资源视频| 97碰久久| 国产激情在线| 91精品人妻一区二区三区蜜桃| 99精品伊人| 国产综合久久久鬼色| 国产精品密臀网在线观看| 操曰本熟女| 天堂在线一区二区| 亚拍在线| 亚洲男人的天堂V| 素人美腿视频网站| 操香逼| 欧美日韩在线国产在线| 久久黄黄| 中文字幕乱码人妻二区三区| 啪啪啪东京| 欧美一级特黄淫片在线观看| 欧美亚洲尤物久久| 性爱av网站| 10000部十八禁看电影| 精品国产乱码久久久兰草影视| 欧美五区| 怡红院成人视频| 欧洲精品一级二级精品综合视频综合| 九九热AV| 日韩不卡毛片Av免费高清| 久久婷婷精品| 日日AAvv| 亚洲一区日韩| 91精品人妻啪啪间| 激情黄色片在线观看| 性爱视频啪啪啪啪| 婷婷五月天丁香| 国模不卡一本二本三电影| 欧美熟妇操操视频| 欧美 日韩第一性色| 思思视频免费看网站| 激情五月天丁香| 久久久精品中文字幕麻豆| 日韩射精| 色色国产| 中文字幕1区2区| 搡老女人911熟妇老熟女| 欧美天天弄| 婷婷啪啪| 久久人妻| 99青草| 欧美熟妇精品黑人巨大91| 中文字幕久热视频在线| 抽插爽| 久久精品28| 日逼逼免费看| 日韩干B| 国内精品久久久久影院亚洲| 热久久国产精品视频大陆精品| 久操精品| 亚洲综合性网址| 欧美的性爱网站免费| 欧美熟妇视频| 国产精品一二三区18| 丝袜内射| 中国大陆国产高清AⅤ毛片| 天天色怡春院| 日日操丁香五月天| 色吊丝 日日骚 清纯唯美| 日韩久久三区| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 色色综合97| 婷婷干黄色| 超碰日韩美妻| 美日韩一卡二卡三卡免费人妻精品| 操逼视频国产无套| 亚洲好色人妻| 超碰人人妻| 天天搞欧美| 色婷婷丁香| 96久久久| 少妇精品久久久八区九区| 婷婷五月天久久精品视频一区二区三区 | 日骚逼视频| 久久爱超碰网| 毛片视频白嫩| 久9视频| 操逼操2| 日韩欧美久久婷婷网站| 91色噜噜狠狠| 99热久| 国产精品一区av在线| 色噜噜国产精品视频一区二区| 午夜精品久久久99| 91精品91久久久中77777| 国产亚洲性生活视频播放| 亚洲 欧美综合| 亚洲精品 欧美精品| WWW.加勒比人妻一区不卡.com| 超碰久久性爱| 久久9 9 9精品| 亚洲操人| 国产成人午夜视频网址| 亚洲欧美人妻| 久久精品 六十路 熟女 欧美| 91色花堂| 国产精品白领在线观看 | 9999久久久| 日韩一级二级三级免费看完整版国语版| 久久久久久性爱视频| 熟女精品一区二区三区| 免费一级黄色录像影片| 做爱A级亚欧| 玖玖爱在线视频免费观看| 蜜臀99久久精品久久久久| 亚洲风情在线观看| 性爱综合一区二区| 无码高清操逼| 两女互慰AV高潮喷水在线观看| 秋霞Av理论一级在线| 91东北熟女| 精品日韩人妻精品一二三区| 操高情无码| 99色色网| 97免费视频网| 久久华人网| 99re6在线视频播放免费精品| 欧美日本天堂| 亚州欧美色图| 国产91亚洲精品一区二区三区| 青娱乐淫乱1314| 99热99在线播放激情| 最新三级网址| 国产精品久久久亚洲一区| 日韩AV电影网站| 97人肏| 日本蜜桃| 亚洲图片欧美| 午夜一区二区三区国产| 日韩三级视频一区二区三区| 国产精品天美传媒| 久久久av爱| 人妻精品一区二区| 亚洲精品无码久久AV| 婷婷五月天小说| 色色五月天婷婷| 一级黄碟在线看| 91精品网站| 九九九精品成人免费视频小说| 天天干天天狼在线视频| 午夜AV污污污| 91老妇女| 日韩二三区| 久久久久久久久999| 黄片不用下载在线观看| 蜜桃AV天堂| 极品尤物女神在线观看| 另类欧美| 操高情无码| 情色av电影| 欧洲亚洲人人爽爽视频| 国内毛片热久久思思热| 超碰性爱97| 懂色中文一区二区三区| 中文字幕日韩精品一区二区三区| 精品久久97观看在线视频| 97精品综合久久| 亚洲一本色码中文字幕| 麻豆熟妇乱妇熟色A片在线看 | 亚洲精品欧洲精品| 试看60秒 爽| 欧美韩国你懂得在线 | 91熟女熟妇视频网站| 97超碰中文字幕| 人妻中文字幕日韩电影| 97在线欧| 亚洲国产午夜真人一级片中文字幕精品黄网站| 久久色情| 可以在线观看的黄色网址| 4虎在线视频| 蜜乳性色无码专日粉嫩骚逼AV| chaopen97久久| 情趣丝袜无码操逼视频| 激情综合网一盗摄| 老司机射| 亚洲av青草久久一区二区| 亚洲熟妇图片| 1769国内精品视频| 九九成人精品| 久久精品国产亚洲AV无码电影| 极品色综合| 亚洲成人久久美女| 免费观看成人www精品视频| 国产精品情侣啪啪| 亚川综合视频| 无码精品久久久久久亚洲| 97欧美久久久久久久| 婷婷丁香五月综合| 奇米狠999| 竹菊一区二区三区AV线| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 嗯嗯啊啊用力视频免费| 色香色欲天天综合网天天来吧 | 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 91日日夜夜| 九九热九九热| 午夜亚洲WWW湿好大| 啊啊啊免费| 蜜桃一区二区三区| 欧美老妇女内射网址| 3p国产欧美99热| yazhououmeizongya| 97色涩| 精品91摸| 精品熟女一区=区三区| 中文字幕一区二区三区视频播放| 日韩午夜精品一区二区三区电影| 日韩三级在线观看网站| 在线有码中文字幕| 黄色大片免费在线| 日语五十路和六十路亚洲国产精品| 97在线视频观看免费| 国产精品亚洲四五区在线观看| 久久婷五月| 欧美黑人精品在线播放| 做爱A级亚欧| 97在线观| 男人天堂网站| 91另类| 免费av在线播放二区| 亚洲熟女精品| 亚洲导航深夜福利| 大香蕉黄色一区| 六月婷婷五月丁香| 天天内射| 夜夜嗨一区二区三区直播内容| 亚洲国产精品久久久久婷婷青年| 亚州色站 日韩电影| 久久久久无码一妻区| 国产日韩美女小穴视频网站不卡| 精品日韩人妻视频| 综合影视国产无码| 久久国产视频性吧 | 欧美 日韩 另类 亚洲| 欧美午夜熟妇黑人精品91| 久久透逼视频| 国产美女自拍AV| 99性爱在线观看| 97天天摸天天碰| 欧美爆操91| 国产午夜视频| 天天干人妻视频| 欧美色另类| 亚洲国产av中文字幕久久| 韩日性爱av| 久久久草成人网站久久久草成人久久久草久久久 | 熟女熟妇一区二区三四区| 九九五月天| 国产又粗又大硬免费色网视频| 国产一级137片内射麻豆| 黄色AV影视| 欧美综合自拍亚洲综合图| 激情小说在线视频| 九九热精品| 久久久久久久六六| 国产真实野战在线视频| 人妻在线大香蕉| 欧美97色| 在线可观看的黄色网址| 伊人久久88国产女| 精品一级毛片在线观看| 久久嫩草国产成人一区| xxxx网站亚洲精品| 内射老妇BBWX0C0CK| 亚洲第一页色| 日本有码影片下载| 中文字幕乱偷人妻久久艾草网| 久久天天艹| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 精品人妻一区二区三区日产乱码| 国产福利精品最新在线 | 亚洲有薄码区日本系列中文字幕| 欧美日韩另类激情图片| 狼天天狼天天大香蕉| 亚洲图片另类| 丁香五月偷拍| 欧美1区二区三区公司| 欧美性视频二区三区| 黄片国产精品一区二区| 国产精品久久久蜜臀| 91在线视频免费播放| 日本啊啊啊啊啊视频| 日韩一级成人毛片免费观看 | 长长久久免费视频| 碰碰97| 97色欧州| 色婷婷久久| 日本中文熟女视频| 美女91av| 91成人精品在线播放| 欧美日韩国产人人| 亚洲另类久操网| 国产精品成人福利在线| 人妻激情视频| 日韩精品熟妇| 极品色社| 天天爽人人综合免费7799| 中国人高清www色视频免费| 91日产欧美| 综合久草| AV中文在线| 香蕉视频精品亚洲一区二区三区在线播| 欧美操逼视频二区| 日日碰狠狠添天天爽超| 国产福利一区二| 青青草影视蜜久久| 99.色网| 人妻天堂综合网| 性无码专区2020| 91色插| 久久av网| 发朗少妇买婬全视频中文| 九月激情婷婷| 免费中文综合精品| 国产粉嫩蜜臀av一区二区三区| 中文在线视频| 操九九九九九九| 狠狠干狠狠干| 日本岛国黄色网址| 日本 欧美 国产一区| 国产精品一区av在线| 欧美日韩制服| 亚洲AV无码乱码| 国产精品人人爽人人做可爱福利| 日韩精品一区的| 能看的AV| 十八禁视频一区二区| 老外又粗又长一晚做五次| 婷婷久久久精品| 97视频在线观看网站| 亚洲天堂日本| 乱欲视频| 精品久久久久av影院| 国产熟女免费观看久久| 久久久久久AⅤ无码免费肉站 | 精品一区二区亚洲国产| 超碰97精品在线| 中文字幕一区av| 成人老鸭窝人人在线视频| 国产熟女精品区| 久久三区四区| 欧美亚洲一级在线观看| 八戒无码国产午夜福利| 五月天婷婷色色| 天天日日日射| 九九亚洲| 婷婷色一区| 日本久久久久久久久| 春色校园综合网| 久久AV无码1区2区3区| 国产路线专区| 综合欧美色图| 国产精品麻豆成人av| 欧美福利视频啊啊啊啊| HEYZO高无码国产精品227| 婷婷综合五月天| 人妻激情另类| 天堂亚洲精品| 日韩欧美中文日韩欧美色| 91粉芽高清在线一区二区| 男人的天堂三级| 国产精品色片一区二区| 啊啊啊不要啊啊受不了了视频在线 | 一卡二卡在线播放| 伊人激情| 成人AV在线网站| 日韩国产乱子伦App| 黄片www.| 中文字幕一区二区无码成人| 亚欧性爱ab| 性色av一区二区| 看日韩黄片| 蜜桃成人1区2区3区| 欧美丝袜91| 热九九精品| 好爽视频在线观看| 日本九九久久99播| 91夜色| 96久久科窝| 亚洲性爱电影| 综精品久久久aaaa| 黄片视频观看| 日韩丝袜人妻AV| 激情小说日韩无码| 亚洲脚交| 色九九综合| 日韩精品 欧美激情| 久久综合99| 超碰91在线| 中文字幕国产精品1区| 91亚洲欧洲| 九X超碰| 91干熟女| 天天综合官网| 亚洲色图第四色| 99国产精品人妻人伦| jk白丝没脱就开始啪啪| 青青草AV色| 久久久久女教师免费一区| 国产偷拍自拍在线视频| 成人日韩3| 91老妇女| 日韩精品9区| 岛国成人av在线播放网址| 校园激情狠狠四射| 夜夜嗨av午夜成人| 久久黄色视频一区二区三区 | 欧美久久草熟女| 色色色色网站| 亚洲色色探花| 国产家庭乱伦表演| 国产高清成人免费视频| 91狠狠狠| 色情婷婷久久五月天| 超碰97起碰| 日日夜夜狠狠| 日韩中文字幕在线视频观看| 97日韩| 国产第二页| 久草视频制服诱惑| 国产成人无码网站在线视频| 福利在线观看一区二区| 亚欧免费| 97人人操人人摸| 国产在线播放成人免费| 成人怡红院| 日本淫乱女一区二区三区视频| 亚洲狠狠入| 亚洲精品三| 久久神马影院| 九七毛片九九毛片| 色拍偷亚洲| 欧美综合自拍成人自拍第二十页| 超碰资源亚洲97| 亚洲免费看片| 91国产大片| 欧美少妇高潮久久91| 丰满人妻-区二区三区免费看| 夜夜黄| 色爱亚洲| 一级做a爰片久久毛片图片| 午夜无遮挡男女啪啪视频| 国产宅男宅女在线观看| 99热免费| 伊人四虎综合| 91社区伊人| 一区二区三区精品视频| 手机在线视频国内精品| 制度丝袜99| 中文字幕 国产 精品| 久久日韩毛| 久久e6只有精品| 性爱AV天堂| 超碰97久久国| 亚洲 在线| 国产高清成人mv在线观看| 激情婷婷五月天| 国产久久一区二区| 呦呦一区| 欧美亚性天堂| 蜜臀va69| 日本一区二区三区免费观看| 人妻少妇av在线观看| 天天插夜夜爽| 成人草草视频| 乱伦Av网| 人妻内射一区二区在线视频| 人人贴人人摸| 成人女人国产| 久久内射| 婷婷五月天色色| 久草毛片| 97综合在线| 最新日本中文字幕| 97无码视频在线播放| 日韩中字av一区| 欧美综合网在线| 国产CHASE男男GAYGA 毛多色婷婷| 91撸色网 玖玖网 欧美| 久久久性| 久草线上视频免费看| 在线观看综合精品亚洲| 国产农村妇女精品一二区| 岛国激情视频软件| 久久大陆| 五月婷婷综合在线| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 国产精品嫩草影院午夜两性| 99亚洲天堂| 亚洲激情深爱文学小说网站| 欧美日不卡| 五月色网| 亚洲影视高清第一页| 激情深爱五月天| 久九色| 5252色欧美在线| 亚洲情色中文字幕一区| 丝袜亚洲综合| 91久久国产精品| 久久久啊啊| 天天做日日做天天欢。| 日韩人妻丝袜美腿中文| 婷婷五月天社区| 操婢日韩| 一二区在线观看视频| 国产久久一区二区三区野外在线| 日本人妻中文字幕精品| 又黑又大又粗| 国产亚洲日韩在线三区黑人| 亚洲欧美日韩中文播放| 99精品无码| 亚洲天堂女优在线| 性爱av在线免费观看| 天啪| 亚洲深夜福利| 亚洲综合伊人| 秋霞鲁丝午夜无码一区二区三| 97 亚洲 日韩 欧美 在线| 国产乱人伦AVA麻豆软件.| 四虎在线观看视频| 国产三级片在线观看| 欧美一品道| 亚洲揄拍网| 91逼逼女人91| 国产日韩精品一区二区三区| 精品区国产区一区二区三区| 男女性感激情网站| 青娱乐淫乱1314| 精品国模无码| 四虎国产精品永久在线囯在线| 欧美男人的天堂| 欧美激情一| 欧美一区二区三区黄色影视| 欧美日韩人妻婷婷一区| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 乱伦Av网| 亚洲91在线| 麻豆亚洲AV成人无码久久精品| 91女日逼| 天天操天天舔| 亚州综合网| 91无码西班牙视频在线| 中文字幕丰满人妻日本| 亚洲综合999| 久久春色| 国产精品制服丝袜清纯唯美| 日本中文字幕在线电影| 天天做日日做天天欢。| 一起草av| 97日视频| 欧美激情久久久久| 亚洲熟女一区| 天欧美在线| 亚洲日本男人天堂网| 欧美日韩青操| 99re在线精品78| 91精品国产91久久久久久久久久久久| 欧美综合色综合| 青娱乐福利99| 日韩欧美国产高清视频| av优播| 夜夜国自区| 欧美亚洲中文| 激情视屏国产乱伦强奸| 熟妇熟女亚洲天堂网| 韩日巨乳美女免费视频在线观看| 丝袜综合网| 国产亚洲精品美女久久久m| 亚洲日韩精品在线播放| 成人综合视频久久| 99精品综合久久久久五月天| 久久透逼视频| 乱精品一区字幕二区| 热的中文 热的有码 热的国产| 色婷婷一区二区三区久久| 国产日本久久免费精品| 青青草原综合久久大伊人精品| 亚洲风情综合网| av天堂手机版追回 | 国产白嫩漂亮KTV在线| 国内精品久久久久影院亚洲| 欲色啪| 翔田千里无码中出中文字幕| 炮色五月| 男人午夜天堂| 手机不卡视频不卡在线一二三区| 久久爽爽精品| 久久精品一区二区| 日本黄 R色 成 人网站| 激情另类激情| 日韩性爱再线视频| 四虎精品亚洲| 综合熟妇一区二区三区| 日韩国产中文字幕| 成人性交免费视屏| 亚 欧 美 综合| 香一区二区三区| 久久精品超碰| 五月丁香成人网| 亚洲国产成人7777| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 精品久久久久,69国产成人精| 男人午夜天堂| 天天色怡春院| 91视频国品一二三区| 国产精品精品系列在线观看| 蜜桃视频一区二区三区在线观看| 男人的天堂视频精品乱在线| 色眯眯射| 97精品一二区| 久久男女激情视频网站| 91狠狠综| 天堂网亚洲区手机版| 在线视频资源| 国产性感在线观看| 婷婷五月天在线观看| 亚洲加勒比久久日本道| 国产91丝袜在线播放蜜月| 99色视频| 国产精品成人无码av| 日韩欧美中文| 亚洲精品一二区| JIZZJIZZ亚洲女人被躁| 91综合熟女| 不卡二三区人妻少妇| 亚洲亚洲亚洲天堂天堂| 女生自91网站| 欧美激情色婷婷花野真衣一区二区| 九九色色| 综合色99| 嗯嗯嗯啊啊啊在线免费观看| 久久男人的天堂国产| 蜜桃久久综合视频| 男人天堂2012| 久操网视频| 亚一综合久久久久久久久久| 国产精品永久免费10000| 国产乱伦性爱区| 天堂а√在线最新版在线| 日本熟女不卡视频| 色黄污美女啪啪啪免费网站| 亚洲色图尤物视频| 亚洲黄色网址视频| 99在线免费公开视频| 亚洲一区二区精品福利| 国产99 中文字幕日韩小视频| 久久久网站| 丰满少妇一区二区三区四区观看| 精品少妇一区二区三区免费观看| 少妇 综合| 日韩欧美天天爽爽爽天天爽爽| 欧美有码亚洲中文字幕一区二区三区四区| 婷婷色网| 欧美猛交黑寡妇中文字幕| 99精品综合久久久久五月天| 好属操| 爆操无码| 欧美最婬乱婬爆婬性视频| 久久久久久久六六| 国产综合久久久麻桃个| 高清国产性猛交xxxx乱大交| 黄色欧美性爱视频| 日韩AV色图| 国产少妇高潮| 96超碰网| 亚洲操逼无码| 色欲人妻一区二区在线| 九热久| 性爱Av免费| 操99| 在线 欧美 亚洲| 亚洲天堂AV在线播放| 野狼激情网| 91岛国动作片| 国产尤物AV尤物在线观看不卡| 欧美天天综| 亚洲无码日韩电影| 婬女免费一二三区A片| 69视频福利导航| 国产美女高潮| 亚洲AV无码成人精品久久| 九九九九精品一区| 免费在线看黄片av| www.丁香五月| 大乔未久88一区| 91精品女厕偷拍视频| 色女综合| 国产精品爆乳懂色蜜乳| 日韩AC| 蜜臀av中文字幕| 日韩一级成人毛片免费观看| 青木玲在线不卡| 国产亚洲精品A在线观看下载| 精品久久久久9999| 操操吧亚洲乱伦视频| 国产97色在线| 日韩欧美加勒比| 亚洲av总站| 欧美性高潮| 国产日韩精品一区二区三区| 国产精品精品系列在线观看| 亚洲色图美腿丝袜| 久久精品国产72国产精品福利| 蜜桃AV天堂| 熟妇视频一区二区三区在线观看| 黄片免费视频2019| 天天影视网色欲色香| 偷拍 精品另类 凸凹了四区| 一本色道综合久久欧美| 夜夜免费视频| 综合欧美日本三级| 久久精品操| 久久中出在线| 丁香婷婷久久 | 欧洲亚洲国产综合在线| 伊人一区二区三区| 久久久久久午夜男人的天堂| 国产美女口爆吞精视频| 亚洲图片 欧美电影| 91美乳| 啊啊啊啊嗯嗯嗯用力好爽 | 国产精品福利资源在线尤物| 视频二区熟女人妻| 久久精品老司| 男人的天堂2019AV| 午夜爽爽爽在线观看永久入口姬片| 麻豆天美在线| 91 亚欧| 学生妹天天看| 60秒免费小视频| 久久线上视频免费看| 刺激性视频黄页| 日韩15p| 操熟女91| 蜜桃久久久久久久久久久久| 91欧美偷拍| 大香蕉www.超碰| 国产午夜福利专区综合| 五十路熟女人妻一区二区在线观看 | av无码精品久久久久| 一级性爱视频免费观看| 亚洲国产综合图区中文字幕| 精品人妻15区| 久久啊啊啊| 欧美日综合| 男人的天堂日本东京热| 丝袜狂射91| 久久九九热| 四虎精品一区| 亚洲综合色图欧美| 特污精品女优骚货黄色视频在线免费观看| 97综合在线观看| 亚洲色图加勒比| 91爱看| 男人的天堂kva| 91色综合色| 色九久| 51久久夜色精品国产麻豆| 91人妻精华帖| www久久99| 神马久久啊啊| 久久精品亚洲婷婷| 亚洲精品一卡二卡三卡福利视频网站| 91男人天堂网| 亭亭丁香激情| 九九精品美女高溯喷水| 久久精品噜噜噜成人看免欧美大片| 狠狠操,使劲操| 激情开心五月天| 亚洲精品人体| 美女刺激久久国产欧美| 蜜桃久久久久久久久久久久| 精品国产Av无码久久久伦古装| 91人妻爽爽人人做人人澡| 日韩激情视频| 欧亚 另类 久| 久久九九网| 日韩射精| 歐美一級亂黃99在綫精品| 国产女大学生AV| 国产欧美一区二区| 国产精品第一区第一页| 久久亚洲天天做| 伊人久久在线视频观看| 国产精品电影| 性欧美第一页| 欧美亚洲色图另类国产| 美女人妻色网站| 蜜臀久久99精品久久久久电影| 国产一区96在线| 夜夜爽夜夜摸夜夜操免费视频| 国产日韩精品suv| 精品久久久亚洲AV成人网站| 亚洲男人的天堂网| 夜夜夜夜久久久久| av网页一区二区三区| 亚洲情色在线| 综合国产影视三级| 亚洲欧洲日产国产综合网| 三级日韩一区二区三区| 偷拍五区| 亚洲福利中文字幕在线| 麻豆 亚洲 97| 在线观看亚洲专区| 中文字幕无码不卡啪啪| 日本一级性爱| 高清孕妇孕交 交| 青青草视频爽一爽| 在线观看无码三级少妇| 久久99精品九九久久久婷婷| 九九热五区| 国产 日韩 欧美一区| 国产精品久久久久久久久AV大片| 国产熟妇一区二区| 久久爱超碰网| 亚洲成人激情小说视频| 丁香色色网| 91麻豆天美国产欧美高潮| 三级激情网站| 另类欧美综合| 久久夜嗨| 人人天天干干| 中文字幕一区二区视频在线观看| 亚洲欧美国产中文字幕| 91麻豆va国产精品| 午夜啪| 伊人宅男大香蕉| 国产精品色哟哟| 艹少妇网站| 日本一区二区中文字幕久久| 大香蕉色欲AV| 97资源制服丝袜| HEYZO高无码国产精品227| 91久久| 麻豆精品.欧美精品.日韩精品.| 久久视网78| 美女91在线观看| 狠狠久久四虎| 樱花蜜乳av| 国产免费操逼| 99re黄 | 国产主播福利| 九九久久国产精品怡红院| 操b网站亚洲无码| 97精彩视频网站| 激情深爱五月天| 人人操人人搞人人草| 桃花色综合影院| 欧美一级在线观看成人| 风月影院男女十八禁| 中文字幕乱码人妻一区二区三区,99精品| 欧美日韩日产免费网站看| 中文字幕丝袜| 99re视频在线播放青草| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 无码天天操| 色视频蜜乳| 内射夫妻三片| 在线视频亚洲无码| 青青草精品| 综合日本女人伊人| 富二代亚洲精品99| 国产精品视频电影| 欧亚不卡| 天天干天天日天天射黄色| 看一级黄色视频| 久久 国产 无码| 欧美一级美片在线观看免费| 蜜臀久久99精品久久久久久-DVD| 一区二区影视| 超碰在线人人射| 国产乱伦亚洲| 欧美黄色片AAAAA| 欧美超碰9798| 男人 天堂 日 亚洲| 国产天美传媒精品| 日本2020一区二区| 男女啪啪网站免费视频| 夜间福利片1000无码| 激情av| 在线观看A啊啊啊| 亚洲精品乱码久久久久久蜜桃麻豆| 男人天堂欧美| 精品日韩人妻精品一二三区| 亚洲欧美一区二区三区一猛片| 懂色AV一区二区三区| 九九国产| 国产白丝精品在线观看| 色噜噜人妻丝袜a∨先锋影| www.超碰| 国产高清在线自在拍69| 久久国产逼| 97天天摸天天碰| 成人天天看站长推荐| 亚洲偷91色| 黄色av网站在线播放| 91色久| 快播久久人人aV| 熟女乱伦A| 六月丁操逼| av爱爱爱| 亚洲综合性感在线| 91美女在线观看| 91精品伊人久久久大香线蕉91| 69AV女优男人的天堂| 搡老女人老91妇女老熟女| www.yw尤物| 久久久久久久久9| 久操网视频| 91久久久久久久| 午夜福利国产欧美日韩夜夜| 中文高清一区二区的| 中文字幕人妻丝袜乱一区三区| 欧美日韩免费性爱| 97 九色| 亚洲国产高清福利视频| 久久人体一区二区| 日韩一级片在线看| …中文字幕亚洲乱,97人妻无码费视…| 日韩一级久久毛片| 欧美三级一级| 欧美爱三级日韩久久| 一区二区三区日韩欧美| 天天日天天搞天天干| 亚洲综合九| 91色久| 久久草草亚洲蜜桃臀| 在现视频女上位好爽| 午夜乱轮操逼视频免费看| 国产天美欧美| 久久精品人人做人人看| 日本黄色XXX| 五月丁香社区婷婷日韩欧美精品影院| 国产乱弄免费在线视频。 | 综合久草| 校园春色AV天堂| 亚洲情色1区| 国产欧美亚洲精品a第2页| 色淫网站优优视频| 中文伊人大香蕉视频| 国产理论视频在线播放| 欧美 亚洲 在线| 九九九九九九九九九九九九九九九女| 成人精品久久久午夜福利| 青青草国产一区二区三区| 亚洲日本韩国极品一区二区| 亚洲国产一区二区入口| 97久久精品不卡| 中文乱码99| 精品一区二区三区蜜桃臀赵总| 五月天婷婷欧美三区| www.人人摸在线视频| 夜夜爽妓女| www.天天干| 人人摸人人添人人操| 欧洲精品一级二级精品综合视频综合| 韩国女主播青草在线| 亚洲日韩肥臀视频在线观看| 国产精品免费视频不卡| 国产传媒操逼视频| 久久五十路熟女人妻| 边做饭边操逼逼| 丁香七月婷婷| 男人的天堂网页| 97天堂| 99热精品在线观看| 综合五月天| 色婷婷激情| 午夜人人操| 国产高清MV操逼视频| 久久精品店| 亚洲图片日本AⅤ欧美在线| 亚洲精品乱码久久久久久蜜桃麻豆 | 囯产精品强| 色综合av男人天堂|