免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

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

C#微信小程序商城源碼實(shí)戰(zhàn):從本地部署到上線避坑指南 簡(jiǎn)介一份面向計(jì)算機(jī)相關(guān)專業(yè)畢業(yè)設(shè)計(jì)的微信小程序在線購物商城完整源碼。項(xiàng)目前端采用微信小程序原生框架后端基于C#與ASP.NET實(shí)現(xiàn)演示了商品瀏覽、購物車、訂單支付及后臺(tái)管理流程適合學(xué)習(xí)C#服務(wù)端開發(fā)和小程序聯(lián)調(diào)的開發(fā)者參考。壓縮包共1930個(gè)文件、約26.9MB主要包含480個(gè).cs后端邏輯文件、125個(gè).aspx頁面文件、140個(gè).js腳本、23個(gè).wxml與24個(gè).wxss小程序結(jié)構(gòu)樣式文件并帶有.sql及.mdf/.ldf數(shù)據(jù)庫文件、.config配置文件和.pfx/.pem證書文件目錄結(jié)構(gòu)覆蓋頁面、業(yè)務(wù)邏輯、數(shù)據(jù)訪問與部署配置等層次。已有592人學(xué)習(xí)下載。整體代碼量較大典型頁面、接口和表結(jié)構(gòu)齊全可據(jù)此對(duì)照分析前后端數(shù)據(jù)通信、數(shù)據(jù)庫腳本及發(fā)布配置方法作為畢業(yè)設(shè)計(jì)或電商項(xiàng)目起步模板能明顯縮短搭建時(shí)間。1. 這個(gè)C#微信小程序商城源碼.zip到底值不值得花時(shí)間拆開看“基于C#的微信小程序在線購物商城源碼.zip”在資源站里經(jīng)常出現(xiàn)在“微信小程序項(xiàng)目實(shí)例”“PHP源碼”旁邊下載頁寫著“含完整前后端數(shù)據(jù)庫”。實(shí)際拿到手里面的東西一般就是三塊小程序前端目錄、C#后端工程、數(shù)據(jù)庫腳本。對(duì)正在做畢業(yè)設(shè)計(jì)、課程設(shè)計(jì)或者公司急著要一套可演示的商城Demo的人來說這個(gè)包確實(shí)能省不少事——你不需要從零搭登錄、商品列表、購物車和訂單流程。但我要先潑一盆冷水這份源碼不會(huì)自動(dòng)變成能上線的商業(yè)產(chǎn)品它的價(jià)值在“看得懂、跑得起來、能改造”而不是解壓即用。我拆過好幾份這類資源結(jié)論一致真正讓你翻車的不是C#代碼本身而是數(shù)據(jù)庫連接、支付回調(diào)驗(yàn)簽、域名白名單這些細(xì)節(jié)。這套架構(gòu)的本質(zhì)也很簡(jiǎn)單微信小程序做界面和交互C#常見是ASP.NET Core Web API做后端服務(wù)中間用HTTPS JSON通信。全文的實(shí)戰(zhàn)思路就是圍繞這條鏈路怎么落地說開。2. 拆解源碼前先搞懂這套架構(gòu)C#后端 微信小程序前端的協(xié)作方式2.1 為什么購物商城選 C# Web API 而不是 Node/PHP技術(shù)選型理由我見過不少同學(xué)問“商城這種項(xiàng)目后端用Node不是更輕嗎PHP不是更快嗎”這些說法都有道理但當(dāng)你手里只有這份C#源碼時(shí)選型理由其實(shí)已經(jīng)替你定好了。更重要的原因是從工程角度C# Web API 做商城后端有它的硬優(yōu)點(diǎn)。一是強(qiáng)類型。商品名稱、價(jià)格、庫存這些字段在C#里定義成字符串、decimal、int編譯期就能發(fā)現(xiàn)類型寫錯(cuò)而不是等到小程序端拿到NaN才去排查。二是數(shù)據(jù)庫訪問層成熟。源碼里多用EF Core或SqlSugar商城最常見的CRUD、分頁、事務(wù)都能用很短的代碼寫清楚而且有遷移機(jī)制改完實(shí)體直接生成數(shù)據(jù)庫腳本。三是微信支付官方文檔和社區(qū)示例里C#版的貢獻(xiàn)度一直很高。我遇到支付回調(diào)、退款、賬單對(duì)賬這類偏門接口搜出來的可用代碼段一大半是C#寫的。對(duì)著源碼里的支付模塊改比用其它語言重新翻譯一遍要省力得多。當(dāng)然C# Web API也有煩的地方Windows部署、IIS或系統(tǒng)d守護(hù)進(jìn)程、開發(fā)機(jī)要裝Visual Studio或.NET SDK。如果你最后要部署到便宜的Linux云主機(jī)就得接受ASP.NET Core的跨平臺(tái)發(fā)布方式——先dotnet publish生成獨(dú)立文件再用Nginx反向代理這一套在第6章我會(huì)給出做法。但就商城這種“登錄-下單-支付-查訂單”的常規(guī)形態(tài)C#的穩(wěn)定性和可維護(hù)性絕對(duì)夠撐起你的第一個(gè)正式項(xiàng)目。2.2 源碼包里的三類核心文件小程序端、C#后端、數(shù)據(jù)庫腳本解壓之后別急著雙擊 .sln先看目錄結(jié)構(gòu)。我?guī)丝催^的商城源碼包基本都有一個(gè)固定套路一個(gè)文件夾放小程序前端一個(gè)文件夾放C#后端外加一個(gè) .sql 文件或數(shù)據(jù)庫腳本目錄。下面這張清單適合你對(duì)照自己手里的包做分類分類常見目錄/文件作用小程序前端miniprogram/、app.js、app.json、pages/頁面、路由、全局配置、用戶登錄態(tài)小程序工具層utils/request.js、utils/util.js封裝wx.request、日期格式化C#后端工程Server/、Api/、WebApi/整個(gè)解決方案所在目錄C#核心代碼Controllers/、Models/、Services/接口入口、實(shí)體類、業(yè)務(wù)邏輯配置appsettings.json、launchSettings.json數(shù)據(jù)庫連接、支付參數(shù)、端口數(shù)據(jù)庫腳本db.sql、database.sql、Scripts/建庫、建表、初始化菜單和數(shù)據(jù)找不到.sln也不用慌。很多資源只放了Api工程目錄沒有解決方案文件到時(shí)候用Visual Studio打開文件夾或者用dotnet命令直接指向.csproj文件運(yùn)行就行。我一般拿到包之后第一件事不是讀代碼而是先戰(zhàn)術(shù)后撤一步把里面所有.csproj文件找出來。商城項(xiàng)目常見兩層或三層結(jié)構(gòu)二層的Controllers直接寫業(yè)務(wù)三層的分離了Services和Repositories。你打開Visual Studio的解決方案資源管理器按“Web”和“Application”兩個(gè)關(guān)鍵詞過濾基本就能定位到啟動(dòng)入口。2.3 小程序與C#后端的通信鏈路HTTPS調(diào)用、JSON序列化、鑒權(quán)Header小程序端不能直接連數(shù)據(jù)庫這是常識(shí)。它只能通過 wx.request 發(fā)HTTP請(qǐng)求到C#端的接口。而C#端作為Web API接收請(qǐng)求后從數(shù)據(jù)庫取數(shù)把結(jié)果序列化成JSON通過MessagePack或System.Text.Json返回。整個(gè)過程最容易被新手忽略的就是所有數(shù)據(jù)都要走公共網(wǎng)絡(luò)所以必須用HTTPS并且微信小程序在正式環(huán)境會(huì)強(qiáng)制校驗(yàn)請(qǐng)求域名。先看小程序端最常見的請(qǐng)求封裝通常放在 utils/request.js 里我見過無數(shù)個(gè)版本核心思想都差不多// 小程序端 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 };這段代碼的邏輯不復(fù)雜BASE_URL 是整個(gè)后端接口的公共前綴所有請(qǐng)求共用header 里的 Authorization 帶上登錄后緩存的token這是商城接口鑒權(quán)最通用的做法。參數(shù) path、data、method 分別對(duì)應(yīng)接口路徑、請(qǐng)求體和HTTP方法。注意在 success 回調(diào)里不能直接把 res 返回要判斷 statusCode因?yàn)槲⑿判〕绦虻?wx.request 在HTTP 404、500等情況下也會(huì)走進(jìn) success而不是 fail。C#后端接收請(qǐng)求的入口就是一個(gè)個(gè) Controller。比如商品列表接口常見寫法長(zhǎng)得像下面這樣// 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 }); } }這里值得說的細(xì)節(jié)是 [FromQuery] 和 [FromBody] 的區(qū)別。小程序端如果通過 GET 把查詢參數(shù)拼在URL上C#就用 [FromQuery] 接如果 POST 用JSON體C#默認(rèn)會(huì)自動(dòng)反序列化到模型一般不用顯式聲明 [FromBody]。老源碼里容易混用我看到的一個(gè)高頻報(bào)錯(cuò)就是“參數(shù)綁定失敗”表象是小程序端拿到的返回是400日志提示找不到page參數(shù)十有八九是請(qǐng)求方式和小程序端對(duì)不上。3. 把源碼在本地跑起來從部署C#后端到微信開發(fā)者工具加載小程序的完整命令3.1 環(huán)境準(zhǔn)備清單Visual Studio / .NET SDK / 微信開發(fā)者工具版本匹配動(dòng)手之前先核對(duì)環(huán)境。這套源碼如果目標(biāo)是“本地跑通”你最少需要裝三樣?xùn)|西Visual Studio 2022 或 .NET SDK前者適合打開工程直接按F5后者適合命令行操作。老源碼可能是.NET Framework的那就得用Visual Studio 2019并勾選“.NET桌面開發(fā)”工作負(fù)載。微信開發(fā)者工具官網(wǎng)下載穩(wěn)定版即可用于導(dǎo)入小程序目錄、預(yù)覽頁面。數(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和運(yùn)行庫的版本對(duì)不上而NuGet還原時(shí)不會(huì)自動(dòng)幫你降級(jí)。更穩(wěn)妥的做法是先看 .csproj 文件里的 TargetFramework 和目標(biāo)框架再?zèng)Q定裝哪個(gè)SDK。如果是 netcoreapp3.1就裝.NET Core 3.1運(yùn)行時(shí)如果是 net6.0裝.NET 6。別為了追新拿.NET 8硬跑老項(xiàng)目不然會(huì)被NuGet依賴折磨到懷疑人生。3.2 還原NuGet包并啟動(dòng)C# Web APIdotnet restore 與 launchSettings 修改環(huán)境確認(rèn)后用命令行啟動(dòng)后端是最可靠的方式。先把當(dāng)前目錄切到 .csproj 所在路徑然后執(zhí)行cd C:\shop-code\Server dotnet restore dotnet rundotnet restore 的作用是根據(jù) .csproj 里聲明的 PackageReference 把NuGet包拉下來。這一步如果報(bào)錯(cuò)先看網(wǎng)絡(luò)是否能訪問 nuget.org內(nèi)網(wǎng)環(huán)境就需要給NuGet換鏡像源常見的做法是修改 NuGet.Config 里的 repository。dotnet run 之后控制臺(tái)會(huì)打印監(jiān)聽地址一般默認(rèn)是 http://localhost:5000 或 https://localhost:5001。這些值來自 Properties/launchSettings.json我建議你先打開這個(gè)文件看一眼{ profiles: { ShopApi: { commandName: Project, launchBrowser: true, applicationUrl: http://localhost:5000;https://localhost:5001, environmentVariables: { ASPNETCORE_ENVIRONMENT: Development } } } }這里最關(guān)鍵的是 applicationUrl。本地聯(lián)調(diào)時(shí)我們只要HTTP端口就夠了不用浪費(fèi)時(shí)間去簽HTTPS證書所以我會(huì)把 https://localhost:5001 直接刪掉只留下 http://localhost:5000。但注意真機(jī)測(cè)試微信小程序時(shí)你沒法用localhost訪問你的電腦必須讓手機(jī)和電腦處在同一網(wǎng)段并監(jiān)聽局域網(wǎng)IP。這個(gè)坑在第5章避坑里我會(huì)專門講。3.3 配置微信小程序appid、合法域名和request基地址三步聯(lián)調(diào)后端服務(wù)起來了現(xiàn)在處理小程序端。打開微信開發(fā)者工具選擇“導(dǎo)入項(xiàng)目”選中源碼包里的小程序目錄一般里面有 app.js 的那個(gè)文件夾就是。導(dǎo)入時(shí)要注意你的登錄身份是否有該小程序的管理權(quán)限。如果沒有正式appid就選“測(cè)試號(hào)”。測(cè)試號(hào)允許你在本地請(qǐng)求任意HTTP或HTTPS域名但真機(jī)預(yù)覽會(huì)受限。接著打開小程序端 app.js 或 config.js 文件找到類似于 globalData 或 constant 里的 baseUrl 配置。我見過很多寫法但統(tǒng)一做法是把后端地址抽出來// 小程序端 app.js App({ globalData: { baseUrl: http://localhost:5000 } })注意這里填的地址必須和C#后端的監(jiān)聽地址一致。如果開發(fā)者工具是在同一臺(tái)電腦上localhost 可以通如果是真機(jī)預(yù)覽這里要改成你電腦在局域網(wǎng)里的IP比如 http://192.168.1.108:5000。最后微信開發(fā)者工具右上角的“詳情—本地設(shè)置”把“不校驗(yàn)合法域名、web-view業(yè)務(wù)域名、TLS版本以及HTTPS證書”打上勾。這是開發(fā)階段的后悔藥幫你繞過正式域名校驗(yàn)。不要把這個(gè)勾選當(dāng)作生產(chǎn)環(huán)境的配置等真機(jī)上線微信團(tuán)隊(duì)會(huì)強(qiáng)制要求HTTPS。3.4 用瀏覽器和Postman驗(yàn)證后端接口Swagger與最小測(cè)試用例后端和前端都準(zhǔn)備好先別急著點(diǎn)小程序頁面。我們先用瀏覽器直接訪問幾個(gè)核心接口驗(yàn)證后端邏輯是否正常。如果源碼里有Swagger啟動(dòng)后訪問 http://localhost:5000/swagger/index.html你會(huì)看到一個(gè)帶UI的接口列表。這是最快確認(rèn)Controller是否注冊(cè)成功的方式。沒有Swagger也沒關(guān)系手動(dòng)在瀏覽器地址欄敲一個(gè)接口試試。商城Demo里最常用的驗(yàn)證接口是商品列表和登錄接口。比如curl http://localhost:5000/api/Product?page1pageSize10如果返回一段JSON里面包含 code 和 data 字段說明C#后端到數(shù)據(jù)庫這條鏈路是通的。如果瀏覽器報(bào)500優(yōu)先去控制臺(tái)看最后幾行日志最常見的錯(cuò)誤是數(shù)據(jù)庫連接字符串寫錯(cuò)。看到“Cannot open database”就是SQL Server連不上看到“Access denied for user”就是MySQL賬號(hào)權(quán)限不對(duì)看到“table doesnt exist”則是數(shù)據(jù)庫腳本沒導(dǎo)入或者表名大小寫映射出問題。用Postman測(cè)的時(shí)候注意一個(gè)小細(xì)節(jié)商城接口把鑒權(quán)放在了Header里測(cè)試登錄接口后會(huì)把返回里的token復(fù)制到Postman的Authorization頭。如果直接調(diào)用下單接口不帶token返回401或403是正常的別慌。4. 購物車、訂單與支付回調(diào)解密核心業(yè)務(wù)模塊的源碼走讀與改造點(diǎn)4.1 商品列表接口的讀取邏輯從數(shù)據(jù)庫到JSON返回的分頁寫法商城頁面打開第一個(gè)請(qǐng)求必然是商品列表。我們讀源碼時(shí)優(yōu)先看這個(gè)接口的實(shí)現(xiàn)。一個(gè)質(zhì)量合格的商城后端商品列表不會(huì)是“一次性查出所有記錄”而是分頁返回。常規(guī)實(shí)現(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 截取某一頁。這里隱藏著一個(gè)應(yīng)屆生容易翻車的點(diǎn)如果先Skip再OrderBy有些數(shù)據(jù)庫會(huì)報(bào)錯(cuò)或者得到無序數(shù)據(jù)。務(wù)必保證順序是“Where - OrderBy - Skip - Take”。我在代碼審查里見過有人把 OrderBy 寫在 Skip 后面然后首頁數(shù)據(jù)每次都不一樣排查了半天竟是這一行順序問題。另外ProductDto 是專門給前端返回的模型不要直接把數(shù)據(jù)庫實(shí)體 Product 暴露給小程序。我看到過把內(nèi)部字段 UserId、CreatedAt 全都返回給前端的寫法這不安全。改造點(diǎn)很簡(jiǎn)單建一個(gè) DTO 類只放前端要的字段再用 Select 做映射。源碼里如果沒有 ProductDto建議你加上后面加字段會(huì)省心很多。4.2 購物車數(shù)據(jù)是存本地Storage還是C#服務(wù)端兩種方案的取舍購物車是商城項(xiàng)目的分水嶺。很多Demo為了省事把購物車數(shù)據(jù)存在小程序端的 Storage 里說“反正用戶沒登錄也能加購物車”。這個(gè)方案在真實(shí)商城項(xiàng)目里根本撐不住用戶換手機(jī)、清緩存、小程序崩潰重裝后購物車全沒了而且用戶在一臺(tái)手機(jī)上加入購物車想在另一臺(tái)設(shè)備上繼續(xù)購物做不到。成熟的源碼工程設(shè)計(jì)是把購物車放服務(wù)端。后端用一張 CartItem 表至少包含 Id、UserId、ProductId、Quantity、Selected 這幾個(gè)字段。用戶每次加購小程序調(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() 這個(gè)方法。很多商城源碼會(huì)有重復(fù)代碼——在每個(gè)Controller里手寫解析token一長(zhǎng)串邏輯。正確做法是定義公共方法或過濾器。你在改造時(shí)如果發(fā)現(xiàn)每個(gè)接口都重復(fù)貼了一段“payload.Substring(…)”建議把它抽到公共類這是高內(nèi)聚的一個(gè)很實(shí)在的改進(jìn)。另外加入購物車要確認(rèn)用戶選項(xiàng)是否選中的狀態(tài)有些源碼做成加完就把整個(gè)購物車覆蓋返回這會(huì)丟失用戶對(duì)某個(gè)商品勾選的記憶。本地Storage不是完全不能用它適合存那些服務(wù)端不需要持久化的臨時(shí)狀態(tài)比如購物車界面的勾選動(dòng)畫狀態(tài)、結(jié)算單里的備注草稿。核心購物車數(shù)據(jù)一定要走后端。4.3 微信支付統(tǒng)一下單與回調(diào)驗(yàn)簽源碼里最值得復(fù)用的部分支付是整個(gè)商城源碼里最值錢的部分。小程序端調(diào)不起支付接口這只是第一步真正硬核的是后端跟微信支付的對(duì)接。標(biāo)準(zhǔn)流程是小程序把訂單信息發(fā)給C#后端C#后端調(diào)用微信支付的“統(tǒng)一下單API”拿到 prepay_id再生成商戶簽名返回給小程序的 wx.requestPayment用戶確認(rèn)支付后微信服務(wù)器把支付結(jié)果回調(diào)到我們的后端指定接口。這中間驗(yàn)簽最容易被抄錯(cuò)。很多源碼里驗(yàn)簽是這么寫的// Services/PayService.cs —— 回調(diào)驗(yàn)簽核心邏輯 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) { // 驗(yàn)簽通過更新訂單狀態(tài) }這里有三處坑改造的時(shí)候要看著。一是排序規(guī)則。微信支付官方要求參數(shù)按 ASCII 碼升序排列很多源碼用 OrderBy(k k.Key)默認(rèn)語義就是按枚舉器對(duì) string 做字典序排序這點(diǎn)沒問題但如果你為了好看改成“按出現(xiàn)順序”就廢了。二是空值處理。官方文檔明確說參數(shù)為空的不要參與簽名源碼里如果沒有過濾空串要補(bǔ)上Where(k !string.IsNullOrEmpty(k.Value))。三是MD5大小寫。微信支付要求簽名結(jié)果轉(zhuǎn)大寫但如果源碼里先轉(zhuǎn)小寫再比較回調(diào)永遠(yuǎn)通不過。我建議你改動(dòng)后先打印兩邊簽名再比較別盲改密鑰。支付回調(diào)地址是在小程序端調(diào)用 wx.requestPayment 時(shí)通過統(tǒng)一下單傳入的 notify_url 參數(shù)指定的。很多源碼包用的地址是 http://localhost:5000這顯然收不到微信服務(wù)器的回調(diào)。本地調(diào)試時(shí)可以用內(nèi)網(wǎng)穿透工具暴露一個(gè)公網(wǎng)HTTPS地址但正式配置一定要改成你的線上域名且必須是用ICP備案過的。支付回調(diào)里還要做冪等如果同一筆訂單被回調(diào)兩次第二次不能把訂單狀態(tài)從“已支付”改回“待支付”要在校驗(yàn)訂單狀態(tài)處加個(gè)判斷。5. 避坑這5個(gè)問題讓新手部署時(shí)最容易翻車附排查與修復(fù)方法5.1 現(xiàn)象小程序端 request 報(bào) “url not in domain list” 或 “TLS版本過低”這是我被問到最多的問題。開發(fā)環(huán)境一切正常真機(jī)預(yù)覽或體驗(yàn)版時(shí)所有請(qǐng)求全部失敗控制臺(tái)提示 “url not in domain list”或者 “安信TLS版本過低”。原因很簡(jiǎn)單微信小程序的正式環(huán)境綁定了 request 合法域名且要求該域名已備案、必須HTTPS、TLS版本不能低于1.2。解決登錄微信公眾平臺(tái)在小程序管理后臺(tái)的“開發(fā)管理—開發(fā)設(shè)置—服務(wù)器域名”里把后端接口的HTTPS域名加進(jìn) request 合法域名。域名不能帶 http:// 前綴也不能是IP或localhost。如果提示TLS版本過低檢查服務(wù)器上的SSL證書配置Nginx里把 ssl_protocols 設(shè)置成 TLSv1.2 TLSv1.3并重啟Nginx。本地開發(fā)用測(cè)試號(hào)可以暫時(shí)忽略域名校驗(yàn)但看不到線上真實(shí)表現(xiàn)。我的習(xí)慣是盡量早配一個(gè)正式的HTTPS域名越晚配越被動(dòng)。5.2 現(xiàn)象C#后端啟動(dòng)后接口500查看日志發(fā)現(xiàn)是數(shù)據(jù)庫連接字符串問題現(xiàn)象是瀏覽器訪問接口返回500而不是404或JSON??刂婆_(tái)日志往往寫著 “Cannot open database” 或者 “Login failed for user sa”。原因是源碼包里自帶的連接字符串是針對(duì)作者本機(jī)數(shù)據(jù)庫寫的你本地如果沒有同名數(shù)據(jù)庫和賬號(hào)自然連不上。解決打開 appsettings.json找到 ConnectionStrings 節(jié)點(diǎn)改成你自己的數(shù)據(jù)庫。比如原來是Server.;DatabaseShopDb;Usersa;Password123456如果用的是Windows認(rèn)證就改成Server.;DatabaseShopDb;Trusted_ConnectionTrue;。如果SQL Server服務(wù)叫SQLEXPRESS需要寫成Server.\\SQLEXPRESS;...。改完重啟 dotnet run。這里我有一個(gè)習(xí)慣先把數(shù)據(jù)庫腳本導(dǎo)入成功再用 SQL Server Management Studio 的連接字符串填到配置里盡量從 Studio 的“連接屬性”復(fù)制完整連接串避免少寫一個(gè)分號(hào)或選項(xiàng)。5.3 現(xiàn)象局域網(wǎng)真機(jī)預(yù)覽時(shí)連不上后端開發(fā)者工具卻正常開發(fā)者工具在小程序端模擬器里請(qǐng)求本機(jī)后端沒問題但用手機(jī)掃碼真機(jī)預(yù)覽后所有請(qǐng)求都失敗。原因有兩個(gè)一是手機(jī)和電腦不在同一個(gè)局域網(wǎng)二是電腦防火墻攔了5000端口。解決用命令ipconfig找出你電腦的IPv4地址比如192.168.1.108把小程序里 baseUrl 改成http://192.168.1.108:5000。然后在Windows防火墻的“高級(jí)設(shè)置—入站規(guī)則”中放行5000端口或者干脆在啟動(dòng)時(shí)用dotnet run --urls http://0.0.0.0:5000強(qiáng)制監(jiān)聽所有網(wǎng)卡。很多源碼默認(rèn)只監(jiān)聽 localhost所以即使你改對(duì)了IP也白搭。注意真實(shí)項(xiàng)目里微信的登錄要在微信公眾平臺(tái)配置業(yè)務(wù)域名或下載校驗(yàn)文件測(cè)試環(huán)境用 IP 訪問很容易踩這個(gè)雷建議早點(diǎn)上正式域名。5.4 現(xiàn)象Newtonsoft.Json 與 System.Text.Json 混用導(dǎo)致字段大小寫對(duì)不上源碼里有些接口返回字段是駝峰如 productName有些返回的是帕斯卡如 ProductName小程序端拿到的數(shù)據(jù)總有幾個(gè)字段是 undefined。原因是老版本用 Newtonsoft.Json默認(rèn)把它序列化成與屬性名一致新版本用 System.Text.Json默認(rèn)序列化會(huì)把C#的帕斯卡名字轉(zhuǎn)換成小寫開頭。如果兩種情況混用前后端對(duì)不上就是必然。解決統(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表示反序列化時(shí)忽略大小寫小程序端用大寫或小寫都能綁上。如果源碼里還在用 Newtonsoft那你就在 AddNewtonsoftJson() 里把 ContractResolver 設(shè)成 CamelCasePropertyNamesContractResolver兩邊選擇一個(gè)統(tǒng)一策略。我最煩這個(gè)坑因?yàn)閳?bào)錯(cuò)不是500而是靜默地返回undefined排查時(shí)間很長(zhǎng)。5.5 現(xiàn)象IIS發(fā)布后上傳圖片404虛擬目錄配置錯(cuò)位本地開發(fā)時(shí)圖片上傳讀取一切正常發(fā)布到Windows服務(wù)器的IIS后商品圖片全部404提示找不到文件。原因通常是源碼里圖片的物理路徑寫死了相對(duì)路徑比如wwwroot\uploads而 IIS 的工作目錄并非項(xiàng)目發(fā)布目錄或者發(fā)布時(shí)未包含 uploads 文件夾。解決先把發(fā)布目錄里有沒有 uploads 文件夾確認(rèn)一遍沒有就手動(dòng)建一個(gè)并給 IIS 站點(diǎn)的應(yīng)用程序池用戶設(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不要走代理還把虛擬目錄路徑漏掉。我見過最離譜的錯(cuò)誤是IIS里添加的虛擬目錄叫 files代碼里卻寫/upload名字不對(duì)應(yīng)圖片自然就404了。建議在瀏覽器里打開圖片地址看具體報(bào)錯(cuò)是404還是403逐層排查。6. 讓商城源碼變成能上線的產(chǎn)品從Demo到生產(chǎn)的三步加固與一個(gè)關(guān)鍵技巧6.1 先刪掉源碼里的默認(rèn)賬號(hào)和弱口令這類源碼包為了演示方便通常會(huì)在數(shù)據(jù)庫初始化腳本里塞進(jìn)一個(gè) admin / 123456 的管理員賬號(hào)甚至有的在 C# 代碼里硬編碼了一個(gè)萬能token。上線前你必須刪掉這些并在用戶表里確認(rèn)沒有“上帝賬號(hào)”。我的做法是直接重跑數(shù)據(jù)庫腳本把 Seed 部分的管理員密碼字段改成隨機(jī)字符串或者換成自己通過 BCrypt 生成的新密碼。同時(shí)檢查 Controllers/ManagerController 之類的后臺(tái)接口有沒有缺少鑒權(quán)。Demo源碼里后臺(tái)接口裸奔的情況非常常見不補(bǔ)就上線等于裸奔。6.2 用 dotnet publish 發(fā)布并配合 Nginx 反向代理生產(chǎn)環(huán)境我推薦先dotnet publish -c Release -o ./publish再把 publish 目錄整體拷貝到服務(wù)器。如果服務(wù)器是 Linux用 Nginx 做反向代理監(jiān)聽443端口并轉(zhuǎn)發(fā)到本地的5000端口如果是 Windows用 IIS 建站點(diǎn)應(yīng)用程序池選“無托管代碼”。發(fā)布完成后一定要把 appsettings.json 里 ConnectionStrings 和 Pay 相關(guān)密鑰換成正式環(huán)境的值并確保服務(wù)器的時(shí)間是網(wǎng)絡(luò)同步的微信支付回調(diào)對(duì)時(shí)間偏移很敏感。6.3 關(guān)鍵技巧給后端接口加一個(gè)請(qǐng)求日志中間件開發(fā)時(shí)我們可以依賴控制臺(tái)日志但上了生產(chǎn)接口出錯(cuò)經(jīng)常是“黑匣子”我們既不知道請(qǐng)求參數(shù)也不知道返回內(nèi)容。所以我每次接手商城源碼第一件事就是加一個(gè)最簡(jiǎn)請(qǐng)求日志中間件把路徑、耗時(shí)、狀態(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); } }這個(gè)中間件不復(fù)雜但它能幫你快速區(qū)分一件事報(bào)錯(cuò)到底發(fā)生在前端還是后端。我經(jīng)歷過一次線上特價(jià)商品超賣頁面提示“請(qǐng)求失敗”但看日志發(fā)現(xiàn)接口全部200說明是前端數(shù)據(jù)渲染邏輯出錯(cuò)后來又在另一單查不到訂單時(shí)發(fā)現(xiàn)日志顯示401才知道是登錄態(tài)過期沒做自動(dòng)刷新。日志不會(huì)說話但它能告訴你往哪個(gè)方向查。把這個(gè)中間件加在 Program.cs 里用app.UseMiddlewareRequestLogMiddleware();注冊(cè)即可。這些加固做完你的商城就比原始的Demo包往前邁了一大步。我拆過很多源碼包最后能真正上線的人往往不是技術(shù)最炫的而是那些愿意把默認(rèn)密碼刪掉、把日志加上、把數(shù)據(jù)庫連接串搞清楚的人。這套組合拳打下來至少能避免上線后第一個(gè)晚上就被用戶碰到404、500和支付掉單。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
极品人妻videosss人妻| 66成人网| 成人资源在线| 啪啪日热| 激情五月婷| 中文国产五月天| 99久久亚洲国产| 色九九综合| 色婷婷五月综合网| 激情婷婷狠狠干| 久久WW| www,天天干| 五月天狠狠干| 欧美成人网婷婷综合在线| av线电影| 伊人丁香五月婷婷潮吹| 91妻人人爽人人看片| 成人网址在线观看| 99热思思| 婷婷激情小说| 5月丁香六月婷婷| 久久婷婷国产| 99热日| 国精产品一区一区三区免费视频| 国产激情综合五月久久| 伊人干综合| 五月婷AV| 深爱1激情网| 梁铮版蜘蛛女在线观看| 伊人久久大香线蕉av最新| 一级黄色影片| 五月天婷婷六月激情网| 99色啊| 久9精品| 中文字幕乱码亚洲精品一区| 国产免费性爱| 久草婷婷网 | 91成人品| 热久久91| 午夜大香蕉| 9热久久| 91嫩草国产线观看亚洲一区二区| 日本熟妇乱妇熟色A片蜜桃| 色综合com| 99免费热视频| 五月丁香综合激情| 亭亭色色五月天| 色XX综合网| 这里只有免费的精品| 久婷婷五月激情| 五月色网| 五月深爱婷婷| 26uuu欧美激情另类| 婷婷丁香成人在线视频| 色五月丁香五月婷婷五月成人网 | jiqingliuyuetian| 激情五月天偷拍综合网| 九月激情网| 久99在线视频| 五月丁香啪| 99日本黄站| 丁香 久久| 婷婷五月天电影网| 无码啪啪| 香蕉久久国产AV一区二区| 天天爽天天操| 婷婷五月综合中文字幕| 天堂资源欧日浪女在线播放| 狠狠色官网| 狠狠色丁香婷婷基地| 精品欧美性爱超级爽| 久久综合九九| 99日视频在线| www.av视频xx999.com| 久久久18| 天天色官网| 99ri视频| 99热综合网| 六月天婷婷| 成人va视频| 99久久免费精品| 日夜夜天天| RenRenSe在线视频网站| 亚洲综合五月天婷婷| 婷婷五月六月| 五月婷婷激情| 波多野结衣AV无码Porn| 内射激情在线| 久久亚洲婷婷| 天色色综合网| 思思久久96热在精品国产,| 婷婷开心激情五月激情网| 亚洲AV无码一区二| 久久黄色免费视频| 色噜噜狠狠色综无码久久合欧美| 日本猛少妇色XXXXX猛叫| 日本婷婷激情四射中文字幕在线观看| 五月婷婷啪啪啪| 色婷婷六月性| 久久婷婷人人| 超碰cap| www.97干视频| 婷婷丁香水多多视频| 欧美爆乳一区二区三区| 欧美 日韩 人妻 高清 中文| 色玖玖综合网| 成人丁香| www久久久久久久| 天天射美女| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 国产乱人偷精品人妻A片| 色色草97| 色狠狠六月| 亚洲天天| 久久这里只有精品视频15| 婷婷少妇激情| 色色亚洲| 东北黄色一级| 欧美丁香婷婷五月| 久久久五月天婷婷成人网| 激情综合五月| 色色色色色色色色网站| 五月天狠狠色| 99无码精品| 国产黄大片在线观看画质优化 | 99人人干人人| 色五月在线播放| 激情五月婷婷| 美女天天艹人人爽| 超碰人人草| 五月天大香焦| 97丁香五月| 天天射影院| 1024亚洲| 亚洲欧洲中文日韩久久AV乱码| 伊人激情AV一区二区三区| 日韩黄色电影| 成人综合AV| 日本成人内射| 久久一热| 大香蕉人人网| 婷婷五月天亚洲综合| A片天天| 色八月婷婷| www.久热| 伊人狠狠色婷婷综合丁香一区| 九九久久五月天综合伊人| 婷婷五月情| www.99日本| 五月婷婷丁香五月婷婷丁香| 久久激情天堂| 五月丁香啪啪网| 99热爱爱干干日| 天天骑天天操| 五月婷婷黄色| 日本三级日本三级99| 黄色三级日本| 99热免费精品| 婷婷丁香五月激情图片| 在线观看视频1区| 五月天成人网婷婷| 天天网曰日曰夜夜综合永久免费| 五月丁香花视频| 亚洲色激情| 激情图片久久| www。88热在线视频免费观看| 中文字幕网伦射乱中文| 99热这里只有免费| av激情在线| 狠狠干综合| 狠狠色色综合| www激情| VA国产在线综合网站| 日本人妻A片成人免费看片| 天天操夜夜啊| 国产首页在线| 精品久久9| www.久久| 婷婷五月综合中文字幕| 91久久1118| 五月丁香A片| 99热国产| 精品乱码久久久久| 色视频2025| 极品少妇XXXX精品少妇偷拍| 五月激情影视| 丁香九月婷婷| 亚洲欧美成人在线观看| 久久伊人大香蕉| 人妻性爱| 天天肏高清在线| 六月丁香av| 国产成人网址| 97涩婷婷| 香蕉久久国产AV一区二区| 婷婷色色综合激情| 在线观看免费狠狠色丁香香综合| 双性美人被调教到喷水A片| 久久AV电影| 久久电影4399| 人人操婷婷| 91精品婷婷国产综合久久| 色天天综合色| 亚洲人妻AV| 亚洲深喉AV| 99无码视频| 掩去也综合五月视频| 婷婷丁香熟女| 五月婷婷六月天| 五月婷婷片| 九九色影视| www,奇米影视| 思思热这里只有精品| 人人舔天天| 久热91精品| 东京热五月婷婷| 久久大香蕉同僚| 激情五月天开心网丁香无码| 丁香五月天啪啪| 碰人人97| 牛牛澡牛牛爽| 国产精品久久久久久久久久免费| 深夜男女福利刺激影院一区完整| 激情五月小说婷婷| 亚洲激情综合五月婷婷啪啪| 久热这里只有精品在线观看 | 丁香五月123| 伊人婷婷五月天| 五月丁香六月综合激情无码软件亮点| 99视频精品全部免费观看| 91碰碰视频| 在线日韩av| 天天插天天干| 九九综合| 久久久天堂国产精品女人| 亭亭玉月丁香| 九九在线视频| 五月婷婷激情| 七七色色综合| 综合啪啪| 大香蕉99| 欧美丁香五月97色| 中文字幕av在线| 久久99热久久99精品| 婷婷激情综合网| 五月天婷婷激情网| 丁香婷婷五月激情综合| 五月丁香婷婷AV天堂| 婷婷丁香激情综合色情| 99无码超碰| 九九热99免费视频| 婷婷五月丁香av网站| 香蕉视频91| 欧美 日韩 成人| 性色九九| 色综合视频| 丁香婷婷婷婷十二月在线观看视频| 专区无日本视频高清8| 99热这里只有精品首页| 国产精品久久久久久亚洲毛片| 51国精产品自偷自偷综合| 99综合免费视频| 五月天激情四射| 久久性操| 超碰精品在线| 大香蕉 婷婷| 玖玖色综合色| 六月激情婷婷综合| 俺来也综合网精品一区| 婷婷综合激情五月综合| 人人摸人人摸| 五月丁香婷婷综合| 99国产精品白浆在线观看免费| 国产欧美精品AAAAAA片| 亚洲啪啪自拍| 久热婷婷| a性生活久久无| 色天堂婷婷| www.91av.com| 亚洲熟女乱色综合亚洲网站| 婷婷五月av| 热九九在线| 婷婷基地成人五月天| 色五月婷婷成人视频| 婷婷五月俺要去| 天天爽综合| 丁香久久| 国产伦亲子伦亲子视频观看| 色碰97| 丁香五婷| 97色色色色色色色色色色色色色| 夜夜撸夜夜骑| 色婷婷丁香五月| 成人做爰黄A片免费看直播室男男| 免费视频1区| 99热销国产这里有精品| 丁香五月婷婷动漫| 亚洲 视频 导航 一区| 色优久久| 久热在线观看视频9| 激情綜合網址| 丁香五月天激情综合网| 色5月婷婷色| 99九九久久| 日韩一级淫乱片一区二区三区| 激情图片99| 国产成人VA| 日韩AV大全| 狠狠综合| 五月天婷婷狠狠| 婷婷亚洲综合| 99热这里只有精品22| 亚洲激情婷婷| 九九视屏| 99热这里只有免费精品| 亚洲综合五月天婷婷丁香| 免费播放AV| 亚洲小视频免费播放| 天天干夜夜欢| 嫩草AV久久伊人妇女超级A| 色五月婷婷丁香凹凸| 99热只有精品综合| 操人久久| 超碰在线网站| 久久九九蜜| 丁香六月五月天| 91碰九色| www.激情五月天| 99综合网| 大香蕉手机视频| 天天狠天天叉| 激情综合文学| 色5月婷婷| 无码任你操| www色哟哟| 亚洲久久视频| 无码99| 色色色五月婷| 激情 婷婷| 久久五月婷综合| 日日爱678| 五月天四色房丁香亭亭| 玖玖伊人网| 婷婷五月天激情文学小说| 97热精品| 色综合中文色综合网| 久久丁香久久| 伊人超碰在线| 毛片色五月| 超碰人人摸人人操| 日本激情五月天‘| 国产女人十八水真多1| 久久久婷丁香五月| av网址在线播放| 欧美噜噜免费观看| 婷婷五月天激情网| 久久狠色噜噜狠狠狠狠97| 久操热线| 看婷婷五月天网| 99热碰碰热| 国产九九一区二区三区| 中文字幕精品在线观看| 九九九日本熟女| 狠狠操狠狠| 9 1大香蕉| 色色cOm| 草草色情综合网| 欧美毛片www| 在线理论片| 日日干综合| 中国女人内射6XXXXX| AV美美午夜| 99成人| 千人斩操逼| 六月成人网| 六月丁香综合网| 久久大香蕉丁香| 天天日天天做天天操| 久久5 9视频免费观看| 9999热这里只有精品| 68热超碰在线| 亚洲六月色婷婷| 丁香六月激情四射| 婷婷五月天成人网| 色婷视频| 九月婷婷综合| 97精品人人A片免费看| 国产熟女日日骚五月丁香爱| 激情五月婷黄版| 女同激情久久av久久| 国产激情综合| 婷婷五月天VI| 五月婷婷久久久| 狠狠色狠狠干| 婷婷五月综合免费在线| 亚洲综合五月天婷婷| 欧美va视频不用播放器的va视频网| 熟妇人妻中文字幕无码老熟妇| 天天干夜夜欢| 婷婷色丁香五月| 天天插天天插| 国产美女视频久| 成人短视频在线| 亚洲亚洲人成综合网络| 超碰国产AV| 五月丁香色婷婷婷基地| 中文成人在线| 天天拍天天操| 亚洲人成色A777777在线观看| 九色PORNY9l原创自拍| 人与禽A片啪啪| 日本色爽| 天天干夜夜b| 97AV人人插人人操| 亚洲精品字幕| 色五月激情婷婷| 艾小青av| 九九热再线九九视频免费在线观看| 97伦乱| www久久艹| 色婷婷六月激情| 91好好热日本在线| A片试看120分钟做受图片| 这里有精品| 九九婷婷五月天影视| 高清成人综合| 99热免费18| 亚洲五月婷婷| 亚洲精品影视| 99爱视频在线| 国产精品久久7777777精品无码| 91婷婷五月天嫩女| 26uuu.| 六月丁香激情| 91n啪啪| 91精品综合久久久久久五月丁香| 中文资源在线a | 五月婷婷久久网| 欧美激情VA永久在线播放| 成人开心五月天| 色五月开心五月激情五月| www.综合久久.com| 91窝窝| 99国产精品久久久久久久久久久| 色五月综合| 成人开心五月天| 婷婷成人综合五月| 五月天开心色情网| 色五月天中文字幕| AV无码免费| 亚洲激情视频在线观看| 成人一级片| 思思久久精品| 天天插综合网| 五月天激情视频| 五月天电影网| 久热这里只有精品在线| 婷婷色五月综合| 五月丁香花免费视频| 99热国内| 亚洲射激情| 99这里有精品免费| 天天噜天天爱| 国产美女精品| 婷婷开心六月| 婷婷精品综合| 激情五月天社区| 五月婷婷六月丁香激情| 丁香五月综合激情性爱| 亚洲成人在线免费| 久久丁香五月天| 婷婷色九月| 97在线综合| 色五月丁香五月| 99在线小视频| 人妻操日日| 六月丁香成人| 超碰大香蕉网| 亚洲婷婷五月草久| 五月丁香激情在线| 婷婷99狠狠| www,com,五月色色| 五月丁香婷婷综合网| 91精品91久久久中77777| 五月叮香啪| 99操逼| 熟妇无码乱子成人精品| 色五月色开心开心五月| cao久久| 日本一毛片| www.久久久久| WWW.夜夜| 啪啪 综合网| 欧美内射AA| 国外亚洲成AV人片在线观看| 色婷婷五月综合色婷婷| 五月综合丁香婷婷| 插插干干干色| 色五月丁香婷婷久草| 婷婷久久网| 熟妇内谢69XXXXXA片| 岛国AAAV| 久久9精品| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 久久精品综合色| 丁香五月久久| 五月丁香六月婷婷手机无线| 伊人网啪啪| 午夜丁香婷婷| 色五月中文字幕| www.久久99| 5月丁香六月情| 五月六月伦理| 五月婷婷影院| 久久99网址| 亚洲精品五十一区| 人妻视频在线| 五月丁香婷婷色啪| 99精品热| 久 久9 9 热 视 频| 97操操操| 九九九九无码| 五月婷婷久久激情| 色婷婷五月丁香色| 五月花综合网| 国产毛片精品一区二区色欲黄A片| 亚洲五月婷婷| 丁香婷婷色九月| www.日韩艹| 婷婷丁香宗合888| 黄色中文字目| 色婷婷色五月另类综合| 婷婷五月色色| 五月激情婷婷四射| 99综合99| 大香蕉婷婷| 欧美婷婷丁香五月| 丁香婷婷色五月合集| 婷婷综合激情| 色婷婷五月在线| 色五月在线视频观看| 色五月激情网| 狠狠搞五月天| 午夜激情婷婷| 99re热在线视频观看| 九九九九九九九热| 日本欧美成人片AAAA| 嫩模aV在线| 色噜噜狠狠一区二区三区| 午夜无码熟熟妇丰满人妻 | 99爱视频在线观看这里只有精品| 7EzOBIhNq85TO| 五月婷婷六月丁香激情深爱| 色婷婷AAA| 色狠狠综合入口| 在热视频精品| www天堂99| 欧美韩日AAA网站| 中文字幕黄色片| 日本色天堂| 丁香五月婷婷六月丁香| www,色综合| 欧美成人网99网| 一级视频网址| 5月丁香婷婷激情网| 色六月 婷婷| 操逼福利视频| 天海翼中文字幕高| 五月婷婷开心亚州在线| 五月伊人91| http://www.lingjunshare.com/ | 九九热精品视频| 欲色人妻| 五月丁香六月在线| 第四色网婷婷| 性视频久久| 日本久久性| 五月婷婷色综图片| 五月总合激情网| 色婷婷综合网| 蜘蛛女免费观看完整版高清电影| 99久热| 香蕉婷婷色五月| 99色视频| 久热播这里只有精品| 亚洲视频另类| av在线激情| 97久久超碰| 婷婷丁香五月综合| 婷婷四色五月| 99免费在线视频| 激情五月综合网最新| 五月天无码| 五月丁香亭亭| 深爱激情婷| 懂色av蜜臀av粉嫩av永陈冠希 | 婷婷五月色情天| 120分钟婬片免费看| 欧美成人无码高清一区二区三区| 五月婷婷丁香91| 婷婷五月花丁香| 性热视频99精品| 五月亭亭直播| 婷婷综合色五月天| 99热久草| 超碰狠狠干99| 午夜九九九九九九九九九九九九九| 久久婷婷伊人| 久草免费福利视频| 9色视频在线| 亚洲瑟瑟精品在线| 99玖玖在线视频| 天天操夜夜操| 色欲一区二区三区精品A片| 99热偷拍| 极骚大香蕉伊人| 激情五月天天狠狠久久| 九九精品这里只有| 丁香婷婷五月综合| 免费视频WWW在线观看网站| 久久激情五月天| 无码啪啪| 丁香色情五月综合激情| www九九热| 人人视频人人干人人做| 99精品视频在线6| 影音先锋男士资源网一区| 九九九九国产| 五月花激情| 天天色情站| 青青草婷婷久久| 日本乱子人伦在线视频| 99re在线精品视频| 婷婷六月激情在线视频| 丁香五月天激情网址| 五月丁香最新| 久久您您综合网| www,天天干| 激情丁香五月天图片| 久久这里只有精品07| 丁香五月WWW| 精品一二三区久久AAA片| 久久色五月| 色色色.COM| 五月香蕉综合| 九九色逼| 人妻久久婷婷| 九九re视频在线视频| 久久AAAA片一区二区| 色色五月婷| 丁香五月天激情综合| 欧洲高清免费久久| 五月熟妇婷婷久久| 久久网站免费亚洲| 久久激情五月天| av在线不卡播放| 99视频这里有精品| 麻豆AV一区二区三区| 色欧洲| 99久.| 伊人五月天| 日屌日日操日日色| 国产精品日韩十五区| 激情综合激情五月| 99热在线中文字幕| 99热99这里有免费的精品| 国产裸舞福利资源在线视频| 另类色网| 婷婷五月天伦理| 再綫Av免费視品| 天天激情5月天亚洲| www色婷婷| 欧美性爱五月天| 婷婷丁香五月麻豆| av大香蕉| 天天插天天狠| 欧美激情Va| 亚洲一色色色色色色色色| 婷婷欧美色| 婷婷丁香午夜综合影视| 69er小视频| 婷婷伊人五月| 这里精品| 99在线视频资源| 日本精品99网站| 五月天社区| AVDV久久| 国产FREESEXVIDEOS性中国| 九九在线精品| 99丁香婷婷综合网| 天天肏天天肏| 色玖玖综合网| 开心亚洲久久开心| 九一99| 丁香五月婷婷在线观看| 色久综合| 超碰精品在线| 亚洲乱码精品久久久久..| 人人色人人弄人人操| 日本色色视频| 2017狠狠干| 婷婷色色五月天| www.狠狠狠狠| 99久久性爱| 国产9色在线/日韩| 色婷婷五月天中文字幕| 九九热这里只有精品首页| 99热网站在线观看| 九九精品在线观看视频6| 五月婷婷偷拍| 香蕉AV福利精品导航| 婷婷福利影院| 男女99免费视频| 六月丁香五月激情网| 狠狠色综合网站久久久久| 欧美日本黄色| 日本人妻伦在线中文字幕| 成片免费观看大全| 婷婷五月小说色综合| 色婷婷狠狠色| 99人妻碰碰碰久久久久禁片| 综合色、色综合| 五月丁香色婷婷久久| 色婷婷狠狠干| 激情五月天天狠狠久久| 欧美电影在线观看| 五月丁香激情怕怕| 欧美综合五月丁香五月天| 91超级碰在线视频| av操B网站| 欧美在线干| 六月丁AV| 婷婷丁香社区| 97人人干人人操| 五月激情网综合| 深夜男女福利刺激影院一区| 丁香六月综合| 99热在线免费观看精品| 久久人人九九| 久草婷婷视频| 六月天六月婷| 久久九九色| 欧美色偷拍| 天天日,夜夜爽| 99人妻碰碰碰久久久久禁片| 综合 蜜月 婷婷| 五月婷婷成人网首页| 欧洲亚洲免费视频9| 九色1区视频在线| 开心四月婷婷在线色播播| 97操碰视频| 激情婷婷综合网| 五月社区婷婷激情| 婷婷91| 亚洲成人av在线| 亚州操人在线视频| 五月婷三级片| 天天艹夜夜爽| 六月丁香五月婷婷| 日本a片网址| AV五月丁香| www,超碰| 五月丁香激情综合久久| 日韩AC在线免费观看| 99热这里只有精品在线免费| 色色色色综合| 色婷婷久久综合| 国产中文字幕在线视频免费观看 | 激情五月综合网| 九九热99熟女| 色五月欧美| 97人人操人人操人人操人人| 婷婷五月丁香伊人| 色亭亭九月| 欧美综合五月丁香六月婷| 少妇性按摩无码中文A片| 久久99热这里| 精品人妻伦九区久久AAA片| 欧亚洲在线高清视频| 中文无码婷婷| 中文字幕AV在线播放| www.99热在线观看| 伊人久久大香蕉网| 亚洲无码播放| 中文字幕在线免费观看视频| 狠狠综合网| 精品成人久久久久久久_一二三四视| 操逼六区| 丁香五月婷婷色| 79精品视频在线观看,| 99欧美| 色播丁香| 婷婷色五月久久| 狠狠爱青青草| 激情五月婷婷开心网| 色婷婷瘦婷婷日韩| 日本超碰在线| 99精品视频免费在线播放| 色婷婷成人| 开心五月婷婷六月丁香| 丁香五月婷婷免费视频| 婷婷五月深爱五月| 91视频五月丁香| 色五月综合激情| 色情五月丁香婷婷网| 爱久久小说下载网| 五月天婷婷影院影院观看| 亚洲AV无码成人精品区电影网| 久婷久婷| www.xtbsty.cn.com蜜乳AV| 久久精品国产一区二区三区四区| 五月综合婷婷久久在线| 超碰成人在线免费观看| 久婷久婷| 天堂婷婷五月在线| 色综合综合综合| 色偷偷五月天| 99热久| 狠狠色色色| 人人爱人人草| anquye伊人| 丰滿爆乳一区二区三区| 第四色五月婷婷| 六月丁香五月婷婷首页| 国产女生爱爱AA| 色人久久| 五月天色婷婷基地| 99在线69| 色婷婷在线电影| 国产日韩欧美性爱| 99热99日…..| 日亚二欧美| 天天天天操| 日日撸夜夜操| 色婷婷丁香五月天在线视频| 丁香五月天婷婷91| 婷婷五月丁香五月| 丁香久久久| 深夜婷婷五月丁香| 丁香六月伊人| 亚洲成人一区| 影音先锋一区二区资源站| 欧美日韩123| 婷婷丁香五月天亚洲| 五月婷婷六月天| 大香蕉丁香五月| 五月天激情影院| 丁香五月欧美| 少妇口诉沐足视频播放器网址| 天天干,天天操,天天射| 97干干干丁香| 91九色网| 思思热在线观看| 精品少妇蜜臀91| 久久99免费视屏| 一起草aV| 六六久久黄色| 五月花婷婷| 性热视频99精品| m色激情网| 中文字幕永久在线| 国产成人AV在线播放| 久久婷婷免费| 成人做爰高潮A片免费视频| 亚洲婷婷91丁香| 99热a片免| www.五月激情红色| 丁香九月综合| 色婷婷久久综合| 夜夜爱影院| 色婷婷色综合| 五月丁香久久激情综合| 狠狠精品干练久久久无码中文字幕 | 五月丁香啪啪啪| 五月丁香婷婷六月| 五月丁香激情四射| 婷婷五月天基地| 终合激情网| 日日夜夜小色哥| 激情黄色小说五月天| 狠狠草婷婷| 亚州激情在线视频| 九九爱这里只有精品| 色婷婷手机在线| 日韩黄黄| 婷婷五月丁香综合| 色婷婷丁香综合中文字幕| 99热插| 伊人色综合久久久| 97色婷婷在线观看| 婷婷五月激情的图片| 婷婷综合一二三| 亚洲无码www| 91婷婷五月丁香碰| www.com亚洲网站在线免费| 色婷成人狠干| 国产一区18| 五月天久久网站| 香蕉操亚洲| 色久九| 99精品在线| 欧美天天爽| 五月天激情播播网| 五月色婷婷综合色| 停停色综合伊人| Va另类视频| 996日日爱| 色欲一二三| 亚洲婷婷丁香| 玖玖婷婷五月天| 伊人综合网站| 91高潮喷水久久久久久久久| 2015WWW永久免费观看播放| 99狠狠操一| 亚洲在线操| 激情深爱婷婷网| 欧美综合在线五月天色婷婷| 婷婷五月天男人影院色色网| 丁香五月六月综合激情| 五月色色网| 九九色逼| av在线免费播放观看| 丁香五月婷婷亚洲另类| 97久久精品| 5月丁香婷婷| 婷婷丁香综合| 久久人人九九| 人人操AV| 国产三级在线播放| 噜噜噜狠狠色综| 激情婷婷五六月天| 五月婷婷激情视频| 99亚洲天堂| 亚洲成人在线在线| 99热99天堂| 久久欧洲久久| 26uuu欧美宗合| 日韩啪啪视频| 久久无码成人| 色综合中文色综合网| Av性爱网| 五月天另类小说| 五月天伊人网| 亚洲图色五月天| 九月色婷婷| 婷婷五月天激情五月天网站| 99热碰碰热| 婷婷色五月综合| 色情久久久| 狠狠操天天日| 婷婷射丁香| 大香焦啪啪啪| 丝袜人妻| 99爱在线视频观看| 26UUU欧美| 九热av| aaa丁香五月天| 婷婷深爱五月丁香| 99久视频| 日本3级片一区2区| 色五月激情综合| 久久东京热婷婷五月| 182.t午在线观看| 激情五月婷黄版| 人人操AV| 色图亚洲91| 天堂AV三级| 色色色婷婷| 九九九九热99超碰| 久久五月天婷婷视频| 久久婷婷五月天| 色综色网| 成年AAAA色情| 亚洲av网站| 伊人久热91| 丁香五月综合在线播放| 五月天色五月| 色噜噜97视频在线观看| 婷婷五月天激情基地| 嫩草AV久久伊人妇女超级A| 久久人操| 五月天婷综合| 色色色五月| 精品成人无码A片观看香草视频 | 丁香桃色网| 婷婷久久色五月婷婷久久久| 丁香亭亭久久| 99色婷婷视频| 六月婷欧美| 99热精品中文字幕| 亚洲天堂婷婷| 婷婷色色播五月天| 疯狂做受XXXX高潮A片| 丁香五月婷婷久久综合激情网| 人人摸人人| 五月色丁香婷婷综合| www.亚洲激情| 玖玖婷婷色欲| 色亚洲婷婷| 免费无码毛片一区二区A片| 99久久免费性爱视频`| 操操碰| 99超级碰碰| 天天综合五月天| 国产精品国产| 婷婷六月天激情| 中文字幕无码成人电影| se99视频| 91九色成人原创视频| 天天爽天天摸| 婷婷五月丁香亚洲| 国产精品激情五月天色婷婷| 婷婷狠狠干| 五月天激情综合10p| 亚洲成人AV高清字幕| 五月丁香青草综合啪啪| 五月婷婷色色爱| 五月婷网站| 午夜激情久久| 激情婷婷六月天| av线电影| 97在线视频人妻九色| 丁香综合网| 九九热在线观看视频| 综合97五月| 欧美丰满熟妇BBB久久久| 激情亚洲五月| 秋霞九九无码| 五月天久久综合婷婷| 人妻AV在线观看| 天天操天天插| 99热这里只有精品23| 色五月激情图片| 五月婷婷啪啪综合网| 丁香色色色| 在线只有精品| 久久性爱网站| 啪啪五月综合| 亚洲色久| 超碰AAAAAAV| 婷婷九九色| 欧洲亚洲午夜| 激情综合五月激情XXXX| 国产精品久久久爽爽爽麻豆色哟哟| 精品51XX| 日本久久婷婷| 亚洲精品视频在线播放| 五月丁香激情综合网官网| 麻豆忘忧草午夜| 婷婷五月电影| xx色综合| 久久五月婷| 色综合色综合色综合高潮| 九九这里只这里只有精品| 五月激情丁香啪啪| 丁香六月综合| 综合婷婷六月| 色婷婷在线视频观看| 综合激情在线视频| 天天摸天天爽| 国产小网站| 日本综合久久| xxx.色婷婷| 在线观看熟女少妇| 伊人超碰在线| 久机视频这只有精品| 亚洲成人乱码av网站| 久久婷婷五月综合色奶水99啪| 国产毛片欧美毛片久久久| 色综合色色色| 婷婷色色综合激情| 丁香五月婷婷亚洲色图| 青青草免费公开视频| 激情久久丁香| 激情五月婷婷啪啪| www.久久爱.c n| 99ER热精品视频| 在线视频99| 五月天激情久色| 色综合色五月| 婷婷久久欧美| 亚洲成人在线播放| 婷婷在线视频| 五月天欧美激情| 天天做天天爱天天搞| 亚洲成人无码免费| 国产又爽又猛又粗的视频A片| 五月婷婷成人| 五月天婷婷乱| 久久综合99| 丁香六月激情毛片| 成人亚洲精品久久久久 | 99九九视频| 天天做天天爱天天爽| 欧美亚洲操逼| 五月激情婷婷图片基地| 99亚洲视频| 丁香99| 777影视理论片大全在线观看| 欧美在线操| 天天爱天天吃狠天天透| 99精品爱| 成人欧美一区二区三区在线观看| 天天操B| 婷婷色色丁香| 操大屄五月天视频| 亚洲精品一区中文字幕乱码| AV大香蕉| 亚洲六月色婷婷| 九九视频在线| 久久一热| 5月丁香六月婷婷| 成人小说 五月天 婷婷| 久久草大香蕉| 激情综合区| 亭亭色网| xx久久| 小泽玛利亚视频一区二区| 奇米色大香蕉| 婷婷色资源| 精品九九九久| 色婷婷六月| 亚洲蜜桃精久久久久久久久久久久| 在线综合网| 激情色色色| 啊v视频在线观看| 欧美婷婷丁香五月社区| 噜噜色五月| 97热这里精品在线视频| 激情丁香五月| 亚洲无码99| 思思热在线视频精品| www.色婷婷.com| 婷婷五月天福利| 91热网址| 97人人搞| 久久综合五月天| 国产操碰| 天天日夜夜拍| 大香蕉伊人久久| 亚洲中文字幕网| 九九久久网| 丁香五月六月| 国产99久久久国产精品免费看| www.zbzhongsen.com| 亚洲综合激情五月久久| 国产人妻人伦精品一区二区| 777精品久无码人妻蜜桃| 淫五月停停| 五月丁香在线观看国产| YW无码| 国产精品人妻在线网址| 丁香五月色五月| 97婷婷色| 99热这里只有精品亚洲| 日逼免费视频| 九九激情视频| 青青草原伊人网| 色五月婷婷久久| 精国产品一区二区三区A片| 丁香六月丁香婷婷激情| 一级性爱大片| 超碰九九热| 韩日在线熟女| 99精品在线下载| 五月天婷婷无码| 欧美三级欧美一级| 激情第四色| 五月婷婷久久大片| 99热色婷婷| 热的五码久久精品| 俺也去综合| 66成人网| 色狠狠综合| 婷婷五月天久草在线| www.99热在线| 天天摸天天舔在线视频| 九九热这里只有精品一| www.婷婷五月| 婷婷五月激情中文字幕| 99久久超级| 丁香六月激情四射| 五月综合激情图片| 色偷偷五月天| 99久视频| 国产女人十八水真多1| 天天色图| 激情黄色小说五月天| 欧洲色| 可以免费观看的av| 伊人大香蕉综合在线| 激情小说五月天社区丁香| 丁香激情五月少妇| 操逼三区| 免费看欧美成人A片无码| 丁香五月婷婷图片综合| 五月婷婷天堂| 婷婷五月综合在线视频| 色99色| 国产成人精品亚洲线观看| 综合网网欲色| 99视频地址| 九色无码| 亚洲综合网在线| 9久精品视频| 天天综合网网欲色| 婷婷五月色播| 色一情一乱一乱91Av| 婷婷六月插屄激情| 五月天大香蕉| 艹色18p| 国产精品五月丁香| 国产成人av在线播放| 色插人人| 狠狠色五月激情| 五月天婷婷伊人| 性爱技巧五月| 色综久久久| 丁香五月区| 五月色情婷婷| 五月丁六月香av| 久久久婷| 久久日九九| 五月综合影院| 丁香五月激情综合| 另类图片色五月| 婷婷情爱五月天6| 伊人久久丁香狠狠婷婷综合香蕉 | 国产五月天欧美色| 激情内射人妻1区2区3区| 五月玖玖| 五月六月伦理| 91日在线视频| 狠狠婷婷爱| 夜夜干夜夜操| 大香线蕉伊人| 丁香五月激情啪啪| 精品九九九久| 婷婷激情蜜桃玖玖丁香| 99热精品在线| 香蕉久久国产AV一区二区| 天天做天天爱天天玩| 无语停婷丁香网| 丁香激激情网| 国产黄色在线| 99热这里只有精品亚洲| 精品人妻一区二区三区四区不卡在| 玖玖午夜视频| 深爱五月婷婷| 亚洲成人中文字幕| www.深爱激情| 曰本aaaaaa丈片| 欧美色色色色色色色| av操B网站| 99成人无码| 久久久天堂国产精品女人| 婷婷丁香第一页| 五月天伊人| 2050人人操免费工开爱| 丁香婷婷色五月激情综合| 狠狠爱综合网| 夜夜撸日日操| 五月色婷婷在线观看| 狠狠色婷婷777| 99视频久久免费视频| 熟妇内谢69XXXXXA片|