日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现

發(fā)布時(shí)間:2025/3/15 C# 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C#開發(fā)微信門戶及應(yīng)用(28)--微信“搖一搖·周邊”功能的使用和接口的實(shí)現(xiàn) 原文:C#開發(fā)微信門戶及應(yīng)用(28)--微信“搖一搖·周邊”功能的使用和接口的實(shí)現(xiàn)

”搖一搖周邊“是微信提供的一種新的基于位置的連接方式。用戶通過“搖一搖”的“周邊”頁卡,可以與線下商戶進(jìn)行互動(dòng),獲得商戶提供的個(gè)性化的服務(wù)。微信4月份有一個(gè)贈(zèng)送搖一搖設(shè)備的活動(dòng),我們有幸獲得贈(zèng)送資格,取得一個(gè)搖一搖的設(shè)備用來測試這個(gè)新增的、很有潛力的功能。”搖一搖周邊“是微信基于低功耗藍(lán)牙技術(shù)的 O2O 入口級應(yīng)用,與微信的其他線下連接能力一道,加速促成了微信 O2O 閉環(huán)的實(shí)現(xiàn)。本文主要介紹一搖設(shè)備的配置使用,以及如何在開發(fā)層面上,定義及實(shí)現(xiàn)微信搖一搖的功能接口。

1、IBeacon基礎(chǔ)知識介紹

搖一搖周邊是基于IBeacon來實(shí)現(xiàn)的。IBeacon是蘋果公司開發(fā)的一種通過低功耗藍(lán)牙技術(shù)進(jìn)行一個(gè)十分精確的微定位技術(shù)。IBeacon設(shè)備通過藍(lán)牙信號廣播設(shè)備id, 手機(jī)等終端進(jìn)入IBeacon設(shè)備的信號范圍,可以收到該設(shè)備的id.

實(shí)現(xiàn)分如下四個(gè)步驟:

?????? 第一步. 服務(wù)提供者向微信后臺申請服務(wù),微信后臺生成一個(gè)IBeaconId,并將其映射到服務(wù)提供者提供的服務(wù),再將IBeaconId告訴服務(wù)提供者;

?????? 第二步. 服務(wù)提供者把第一步拿到的IBeaconId設(shè)置到IBeacon設(shè)備上,讓IBeacon設(shè)備廣播該IBeaconId;

?????? 第三步. 用戶在該IBeacon設(shè)備的信號范圍內(nèi)打開微信搖一搖周邊,微信App拿到該IBeaconId;

?????? 第四步. 微信通過第三步拿到的IBeaconId,向微信后臺拉取相應(yīng)的服務(wù),展示在搖出來的結(jié)果上。

?????? 第五步. 用戶點(diǎn)擊搖出來結(jié)果,在微信內(nèi)嵌的瀏覽器上,會(huì)帶上用戶信息跳轉(zhuǎn)到服務(wù)提供者在第一步申請服務(wù)時(shí)填的url,進(jìn)入應(yīng)用頁面

應(yīng)用場景:

2、搖一搖設(shè)備的使用

搖一搖的beacon設(shè)備很小,底座可以用贈(zèng)送的雙面膠粘貼在墻面上,底面還可以貼一個(gè)微信的提示標(biāo)簽,挺有意思的效果。

同時(shí)可以下載這個(gè)beacon設(shè)備的App軟件RealKit進(jìn)行設(shè)置設(shè)備,設(shè)備界面管理界面如下所示。

根據(jù)官方搖一搖(https://zb.weixin.qq.com/)的配置說明,我們擁有設(shè)備后,需要配置設(shè)備響應(yīng)的頁面,流程如下所示。

?

由于是微信贈(zèng)送的設(shè)備,默認(rèn)情況下,微信后臺已經(jīng)給我們添加贈(zèng)送的搖一搖設(shè)備記錄了;

如果是自己購買這種搖一搖的設(shè)備,那么需要自己手工添加設(shè)備記錄,并輸入相關(guān)的參數(shù)即可。

添加設(shè)備后,我們需要配置搖一搖的頁面,頁面就是在搖動(dòng)微信的時(shí)候,顯示給微信用戶的一個(gè)界面,頁面管理界面如下所示。

最終配置完成后,我們就來試一下這個(gè)神秘的設(shè)備了,看看效果如何。這個(gè)設(shè)備的信號穿透力還是很不錯(cuò),隔了10米,兩堵墻搖一搖還是很快出來界面的。

這個(gè)搖一搖周邊的功能,我在IPhone4S里面始終無法出現(xiàn)周邊這個(gè)模塊,在5、6plus里面倒是很正常的出現(xiàn)并響應(yīng)處理,而IPAD則是在搖一搖后出現(xiàn)頁面的,但是頁面無法響應(yīng)。

?

3、基于C#的微信搖一搖接口的實(shí)現(xiàn)

搖一搖和功能界面相呼應(yīng),提供了設(shè)備管理、頁面管理、素材管理、關(guān)聯(lián)關(guān)系綁定、設(shè)備及用戶信息、數(shù)據(jù)統(tǒng)計(jì)等功能接口,如下所示。

1)設(shè)備管理

而其中設(shè)備管理部分,又分為了好幾個(gè)API的處理。

1 申請?jiān)O(shè)備ID
2 編輯設(shè)備信息
3 配置設(shè)備與門店的關(guān)聯(lián)關(guān)系
4 查詢設(shè)備列表

申請?jiān)O(shè)備ID

接口說明?申請配置設(shè)備所需的UUID、Major、Minor。申請成功后返回批次ID,可用返回的批次ID用“查詢設(shè)備列表”接口拉取本次申請的設(shè)備ID。單次新增設(shè)備超過500個(gè),需走人工審核流程,大概需要三個(gè)工作日;單次新增設(shè)備不超過500個(gè)的,當(dāng)日可返回申請的設(shè)備ID。一個(gè)公眾賬號最多可申請99999個(gè)設(shè)備ID,如需申請的設(shè)備ID數(shù)超過最大限額,請郵件至zhoubian@tencent.com,郵件格式如下: 標(biāo)題:申請?zhí)嵘O(shè)備ID額度 內(nèi)容:1、公眾賬號名稱及appid(wx開頭的字符串,在mp平臺可查看) 2、用途 3、預(yù)估需要多少設(shè)備ID。

接口調(diào)用說明

http請求方式: POST(請使用https協(xié)議) https://api.weixin.qq.com/shakearound/device/applyid?access_token=ACCESS_TOKEN POST數(shù)據(jù)格式:json POST數(shù)據(jù)例子: {"quantity":3, "apply_reason":"測試", "comment":"測試專用","poi_id":1234 }

參數(shù)說明

參數(shù)是否必須說明
access_token調(diào)用接口憑證
quantity申請的設(shè)備ID的數(shù)量,單次新增設(shè)備超過500個(gè),需走人工審核流程
apply_reason申請理由,不超過100個(gè)字
comment備注,不超過15個(gè)漢字或30個(gè)英文字母
poi_id設(shè)備關(guān)聯(lián)的門店ID,關(guān)聯(lián)門店后,在門店1KM的范圍內(nèi)有優(yōu)先搖出信息的機(jī)會(huì)。門店相關(guān)信息具體可查看門店相關(guān)的接口文檔

返回說明?正常時(shí)的返回JSON數(shù)據(jù)包示例:

當(dāng)申請個(gè)數(shù)小于等于500時(shí), { "data": {"apply_id": 123,"device_identifiers":[{"device_id":10100, "uuid":"FDA50693-A4E2-4FB1-AFCF-C6EB07647825", "major":10001,"minor":10002}]},"errcode": 0,"errmsg": "success." } 當(dāng)申請個(gè)數(shù)大于500時(shí), { "data": {"apply_id": 123,"audit_status": 0, "audit_comment": "審核未通過" },"errcode": 0,"errmsg": "success." }


參數(shù)說明

?

參數(shù)說明
device_identifiers指定的設(shè)備ID列表
device_id設(shè)備編號
UUID、major、minorUUID、major、minor
audit_status審核狀態(tài)。0:審核未通過、1:審核中、2:審核已通過;審核會(huì)在三個(gè)工作日內(nèi)完成
audit_comment審核備注,包括審核不通過的原因
apply_id申請的批次ID,可用在“查詢設(shè)備列表”接口按批次查詢本次申請成功的設(shè)備ID。

根據(jù)這些接口定義,我們可以創(chuàng)建一個(gè)搖一搖專用的接口類IShakeAround。

/// <summary>/// 搖一搖周邊的接口定義/// </summary>public interface IShakeAround{#region 設(shè)備管理/// <summary>/// 申請?jiān)O(shè)備ID。/// 接口說明 申請配置設(shè)備所需的UUID、Major、Minor。/// 若激活率小于50%,不能新增設(shè)備。單次新增設(shè)備超過500個(gè),需走人工審核流程。審核通過后,可用返回的批次ID用“查詢設(shè)備列表”接口拉取本次申請的設(shè)備ID。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="applyInfo">設(shè)備申請信息</param>ShakeDeviceApplyJson ApplyDevice(string accessToken, ShakeDeviceAddJson applyInfo);/// <summary>/// 編輯設(shè)備信息。/// 接口說明 編輯設(shè)備的備注信息。可用設(shè)備ID或完整的UUID、Major、Minor指定設(shè)備,二者選其一。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="info">設(shè)備信息</param>/// <param name="comment">設(shè)備的備注信息,不超過15個(gè)漢字或30個(gè)英文字母。</param>/// <returns></returns>CommonResult UpdateDevice(string accessToken, ShakeDeviceIdentifier info, string comment);/// <summary>/// 配置設(shè)備與門店的關(guān)聯(lián)關(guān)系。接口說明 修改設(shè)備關(guān)聯(lián)的門店ID、設(shè)備的備注信息。可用設(shè)備ID或完整的UUID、Major、Minor指定設(shè)備,二者選其一。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="info">設(shè)備信息</param>/// <param name="poi_id">待關(guān)聯(lián)的門店ID</param>/// <returns></returns>CommonResult BindDevice(string accessToken, ShakeDeviceIdentifier info, int poi_id);/// <summary>/// 查詢設(shè)備列表./// 接口說明 查詢已有的設(shè)備ID、UUID、Major、Minor、激活狀態(tài)、備注信息、關(guān)聯(lián)門店、關(guān)聯(lián)頁面等信息。可指定設(shè)備ID或完整的UUID、Major、Minor查詢,也可批量拉取設(shè)備信息列表。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="device_identifiers">設(shè)備列表信息</param>/// <returns></returns>ShakeDeviceSearchList SearchDevice(string accessToken, List<ShakeDeviceIdentifier> device_identifiers);/// <summary>/// 查詢設(shè)備列表./// 接口說明 查詢已有的設(shè)備ID、UUID、Major、Minor、激活狀態(tài)、備注信息、關(guān)聯(lián)門店、關(guān)聯(lián)頁面等信息。可指定設(shè)備ID或完整的UUID、Major、Minor查詢,也可批量拉取設(shè)備信息列表。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="data">分頁查詢條件。apply_id為批次ID,如果指定則以批次進(jìn)行查詢,否則以指定范圍查詢。</param>/// <returns></returns>ShakeDeviceSearchList SearchDevice(string accessToken, ShakeDeviceSearchPaging data);#endregion

接口定義好,我們增加對應(yīng)的類實(shí)現(xiàn)即可,如下是申請?jiān)O(shè)備的接口具體實(shí)現(xiàn)函數(shù),其他遵循同樣的規(guī)則就不再贅述。

/// <summary>/// 申請?jiān)O(shè)備ID。/// 接口說明 申請配置設(shè)備所需的UUID、Major、Minor。/// 若激活率小于50%,不能新增設(shè)備。單次新增設(shè)備超過500個(gè),需走人工審核流程。審核通過后,可用返回的批次ID用“查詢設(shè)備列表”接口拉取本次申請的設(shè)備ID。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="applyInfo">設(shè)備申請信息</param>public ShakeDeviceApplyJson ApplyDevice(string accessToken, ShakeDeviceAddJson applyInfo){var url = string.Format("https://api.weixin.qq.com/shakearound/device/applyid?access_token={0}", accessToken);string postData = applyInfo.ToJson();ShakeDeviceApplyJson data = null;ShakeDeviceApplyResult result = JsonHelper<ShakeDeviceApplyResult>.ConvertJson(url, postData);if (result != null){data = result.data;}return data;}

?

2)頁面管理

同樣頁面管理也包含了幾個(gè)不同的方法,用來創(chuàng)建、編輯、刪除頁面等處理操作

1 新增頁面
2 編輯頁面信息
3 查詢頁面列表
4 刪除頁面

新增頁面

新增搖一搖出來的頁面信息,包括在搖一搖頁面出現(xiàn)的主標(biāo)題、副標(biāo)題、圖片和點(diǎn)擊進(jìn)去的超鏈接。其中,圖片必須為用素材管理接口上傳至微信側(cè)服務(wù)器后返回的鏈接。

接口調(diào)用說明

http請求方式: POST(請使用https協(xié)議) https://api.weixin.qq.com/shakearound/page/add?access_token=ACCESS_TOKEN POST數(shù)據(jù)格式:json POST數(shù)據(jù)例子: {"title":"主標(biāo)題", "description":"副標(biāo)題", "page_url":" https://zb.weixin.qq.com ", "comment":"數(shù)據(jù)示例","icon_url":"http://3gimg.qq.com/shake_nearby/dy/icon " }

根據(jù)這些接口定義,同樣我們可以為IShakeAround接口類增加對應(yīng)的接口定義了。

#region 頁面管理/// <summary>/// 新增頁面。/// 新增搖一搖出來的頁面信息,包括在搖一搖頁面出現(xiàn)的主標(biāo)題、副標(biāo)題、圖片和點(diǎn)擊進(jìn)去的超鏈接。/// 其中,圖片必須為用素材管理接口上傳至微信側(cè)服務(wù)器后返回的鏈接。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="info">新增頁面POST數(shù)據(jù)對象</param>/// <returns></returns>ShakePageResult AddPage(string accessToken, ShakePageJson info);/// <summary>/// 編輯頁面信息。/// 編輯搖一搖出來的頁面信息,包括在搖一搖頁面出現(xiàn)的主標(biāo)題、副標(biāo)題、圖片和點(diǎn)擊進(jìn)去的超鏈接。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="info">編輯頁面POST數(shù)據(jù)對象</param>/// <returns></returns>ShakePageResult UpdatePage(string accessToken, ShakePageJson info);/// <summary>/// 查詢頁面列表。/// 查詢已有的頁面,包括在搖一搖頁面出現(xiàn)的主標(biāo)題、副標(biāo)題、圖片和點(diǎn)擊進(jìn)去的超鏈接。/// 提供詢方式:指定頁面ID查詢。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="begin">頁面列表的起始索引值</param>/// <param name="count">待查詢的頁面?zhèn)€數(shù)</param>/// <returns></returns>ShakePageSearchJson SearchPage(string accessToken, int begin, int count);/// <summary>/// 查詢頁面列表。/// 查詢已有的頁面,包括在搖一搖頁面出現(xiàn)的主標(biāo)題、副標(biāo)題、圖片和點(diǎn)擊進(jìn)去的超鏈接。/// 提供詢方式:批量拉取頁面列表/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="page_ids">指定頁面的id列表</param>/// <returns></returns>ShakePageSearchJson SearchPage(string accessToken, List<int> page_ids);/// <summary>/// 查詢頁面列表。/// 查詢已有的頁面,包括在搖一搖頁面出現(xiàn)的主標(biāo)題、副標(biāo)題、圖片和點(diǎn)擊進(jìn)去的超鏈接。/// 提供兩種查詢方式,可指定頁面ID查詢,也可批量拉取頁面列表。/// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="info"></param>/// <returns></returns>ShakePageSearchJson SearchPage(string accessToken, ShakePageSearchPaging info);/// <summary>/// 刪除頁面。/// 刪除已有的頁面,包括在搖一搖頁面出現(xiàn)的主標(biāo)題、副標(biāo)題、圖片和點(diǎn)擊進(jìn)去的超鏈接。/// 只有頁面與設(shè)備沒有關(guān)聯(lián)關(guān)系時(shí),才可被刪除。 /// </summary>/// <param name="accessToken">調(diào)用接口憑證</param>/// <param name="page_ids">指定頁面的id列表</param>/// <returns></returns>CommonResult DeletePage(string accessToken, List<int> page_ids);#endregion 頁面管理

3)其他管理

當(dāng)然除了上面設(shè)備、頁面的管理,還有一些如

上傳圖片素材、配置設(shè)備與頁面的關(guān)聯(lián)關(guān)系、以設(shè)備為維度的數(shù)據(jù)統(tǒng)計(jì)接口、以頁面為維度的數(shù)據(jù)統(tǒng)計(jì)接口等方法接口用來實(shí)現(xiàn),根據(jù)上面的處理方式定義即可。

4)測試代碼

增加相關(guān)的接口定義,以及完成對應(yīng)的接口實(shí)現(xiàn),我們就需要編寫一些測試類來對我們的接口進(jìn)行測試的,這些對設(shè)備、頁面的測試代碼如下所示。

/// <summary>/// 搖一搖設(shè)備的申請、修改、綁定處理操作測試/// </summary>private void btnDevice_Click(object sender, EventArgs e){try{int poi_id = 275961135;ShakeDeviceApplyJson result = api.ApplyDevice(this.token, new ShakeDeviceAddJson() { quantity = 1, apply_reason = "測試", comment = "測試備注", poi_id = poi_id });if (result != null){Console.WriteLine(result.ToJson());if (result.device_identifiers != null){ShakeDeviceIdentifier device = result.device_identifiers[0];if (device != null){int device_id = device.device_id; //465123; Console.WriteLine(device_id);string comment = "修改的備注";ShakeDeviceIdentifier info = new ShakeDeviceIdentifier(device.device_id, device.uuid, device.major, device.minor);CommonResult comResult = api.UpdateDevice(this.token, info, comment);MessageUtil.ShowTips(comResult.Success ? "操作成功" : "修改設(shè)備失敗:" + comResult.ErrorMessage);comResult = api.BindDevice(this.token, info, poi_id);MessageUtil.ShowTips(comResult.Success ? "操作成功" : "修改設(shè)備失敗:" + comResult.ErrorMessage);}}}}catch(Exception ex){Console.WriteLine(ex);}}

?

/// <summary>/// 增加搖一搖素材、增加頁面、修改頁面、刪除頁面的操作示例代碼/// </summary>private void btnPage_Click(object sender, EventArgs e){string file = FileDialogHelper.OpenImage(false);if(string.IsNullOrEmpty(file)){return;}ShakeMaterialJson mediaJson = api.AddMaterail(this.token, file);if (mediaJson != null){ShakePageJson json = new ShakePageJson(){title = "主標(biāo)題",description = "副標(biāo)題",comment = "備注說明",page_url = "https://www.iqidi.com",icon_url = mediaJson.pic_url};ShakePageResult result = api.AddPage(this.token, json);if (result != null){Console.WriteLine(result.ToJson());if (result.data != null){json.page_id = result.data.page_id;json.comment = "修改備注信息";result = api.UpdatePage(this.token, json);if (result != null){Console.WriteLine("修改頁面");Console.WriteLine(result.ToJson());}CommonResult comResult = api.DeletePage(this.token, new List<int>() { json.page_id.Value });MessageUtil.ShowTips(comResult.Success ? "刪除頁面操作成功" : "刪除頁面失敗:" + comResult.ErrorMessage);}}}}

個(gè)人認(rèn)為,搖一搖設(shè)備,開啟了一個(gè)更廣闊的應(yīng)用空間,隨著越來越多設(shè)備商的支持,微信接口的完善和增加,可以迸發(fā)出更多有意思、實(shí)用的應(yīng)用場景。

posted on 2015-05-16 09:24 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/4507376.html

總結(jié)

以上是生活随笔為你收集整理的C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四季av一区二区夜夜嗨 | 在线精品一区 | 91精品欧美| 国产淫片| 98久久久 | 一级黄色片在线播放 | 天狂传说之巴啦啦小魔仙 | 东北少妇不戴套对白第一次 | 夜夜骑夜夜操 | 欧美成人极品 | www.色视频 | 日韩免费在线观看 | 天天色成人网 | 蜜桃臀av | 青青草午夜 | 麻豆国产精品一区 | 国产精品1区2区 | 欧美视频黄 | 久九九| 中文字幕在线免费观看 | 国产视频一区二区 | 欧美成人手机在线 | 2020自拍偷拍| 精品裸体舞一区二区三区 | 国产一区二区三区18 | 免费av大全| 奇米精品一区二区三区在线观看一 | 淫五月 | 国产日| 久久精品国产亚洲av嫖农村妇女 | 欧美h视频在线观看 | 日本熟妇一区二区三区四区 | 最新在线视频 | 国产妻精品一区二区在线 | 久久人人爽人人爽人人av | 免费啪视频在线观看 | www成人| 大陆极品少妇内射aaaaaa | 欧美极品喷水 | 日韩电影中文字幕在线观看 | 亚洲特级黄色片 | _级黄色片| 新婚夫妇白天啪啪自拍 | 蜜桃久久精品 | 草av| 成人在线视频免费看 | 欧美黑人孕妇孕交 | 美女视频污| 日韩av激情 | 成人黄色av网站 | 国产在线中文 | 九色porny自拍视频在线播放 | 日本道在线观看 | 国产亚洲性欧美日韩在线观看软件 | 一区二区三区精 | 欧美无砖砖区免费 | 精品国产一区在线观看 | 日韩欧美精品在线视频 | 久久无码精品丰满人妻 | 奇米影视第四色7777 | 黄色一级片免费 | 欧美日本韩国一区二区三区 | 无码国产69精品久久久久同性 | 东北高大丰满bbbbzbbb | 欧美成人精品一区二区三区在线观看 | 9191在线视频 | 久久精品专区 | 国产美女自拍 | www超碰在线| 黄色成人在线播放 | 人人爽人人草 | 国产91在线亚洲 | 3d动漫精品啪啪一区二区竹菊 | 免费国产羞羞网站视频 | 成人免费在线网址 | 国产偷v国产偷v亚洲高清 | 人与动物av| 免费看操片 | 人人九九| 伊人av网站 | 日本欧美另类 | 香蕉久久影院 | 亚洲一区二区三区播放 | 波多野在线视频 | 国产高清视频在线免费观看 | 密桃av在线| 日本理论片午伦夜理片在线观看 | 亚洲AV无码一区二区三区蜜桃 | 国产日韩精品中文字无码 | 黄网站免费大全入口 | 超碰在线观看av | 一级片免费观看 | 国产精品一区在线看 | 一级片大片 | 超碰青娱乐 | 三年大全国语中文版免费播放 | 国产色婷婷一区二区三区竹菊影视 | 特级西西444www | 9色在线视频 |