久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

uni-app結(jié)合.NET 7實現(xiàn)微信小程序訂閱消息推送

瀏覽:164日期:2022-06-09 08:15:34
目錄
  • 功能介紹
  • 消息類型
  • 基本流程
    • 注意事項
    • 獲取模板ID
  • uni-app代碼
    • 服務(wù)端代碼
      • 生成訂單
      • 發(fā)送模板消息
    • 總結(jié)

      微信小程序的訂閱消息是小程序的重要能力之一,為實現(xiàn)服務(wù)的閉環(huán)提供更優(yōu)的體驗。訂閱消息我們應(yīng)該經(jīng)常見到,比如下單成功之后的服務(wù)通知,支付成功后的支付成功通知,都屬于小程序的訂閱消息。

      本文只實現(xiàn)一次性訂閱的功能,至于長期訂閱設(shè)備訂閱,有機(jī)會碰到再進(jìn)行研究。

      在開始之前,我們先看看微信小程序訂閱消息的介紹:

      功能介紹

      消息能力是小程序能力中的重要組成,我們?yōu)殚_發(fā)者提供了訂閱消息能力,以便實現(xiàn)服務(wù)的閉環(huán)和更優(yōu)的體驗。

      • 訂閱消息推送位置:服務(wù)通知
      • 訂閱消息下發(fā)條件:用戶自主訂閱
      • 訂閱消息卡片跳轉(zhuǎn)能力:點擊查看詳情可跳轉(zhuǎn)至該小程序的頁面

      消息類型

      1. 一次性訂閱消息

      一次性訂閱消息用于解決用戶使用小程序后,后續(xù)服務(wù)環(huán)節(jié)的通知問題。用戶自主訂閱后,開發(fā)者可不限時間地下發(fā)一條對應(yīng)的服務(wù)消息;每條消息可單獨訂閱或退訂。

      2. 長期訂閱消息

      一次性訂閱消息可滿足小程序的大部分服務(wù)場景需求,但線下公共服務(wù)領(lǐng)域存在一次性訂閱無法滿足的場景,如航班延誤,需根據(jù)航班實時動態(tài)來多次發(fā)送消息提醒。為便于服務(wù),我們提供了長期性訂閱消息,用戶訂閱一次后,開發(fā)者可長期下發(fā)多條消息。

      目前長期性訂閱消息僅向政務(wù)民生、醫(yī)療、交通、金融、教育等線下公共服務(wù)開放,后期將逐步支持到其他線下公共服務(wù)業(yè)務(wù)。

      所以我們普通小程序,在注冊成功后,訂閱消息的模板選擇,只有一次性訂閱的選項,沒有長期訂閱的選項。

      3. 設(shè)備訂閱消息

      設(shè)備訂閱消息是一種特殊類型的訂閱消息,它屬于長期訂閱消息類型,且需要完成「設(shè)備接入」才能使用。

      了解了小程序訂閱消息之后,我們開始進(jìn)入正題!

      基本流程

      注意事項

      由于后面的文章還很長,注意事項優(yōu)先發(fā)出來,可能看到這里已經(jīng)解決了你的問題。

      • 一次性模板 id 和永久模板 id 不可同時使用。
      • 低版本基礎(chǔ)庫2.4.4~2.8.3 已支持訂閱消息接口調(diào)用,僅支持傳入一個一次性 tmplId / 永久 tmplId。
      • 2.8.2 版本開始,用戶發(fā)生點擊行為或者發(fā)起支付回調(diào)后才可以調(diào)起訂閱消息界面
      • 2.10.0 版本開始,開發(fā)版和體驗版小程序?qū)⒔故褂媚0逑?formId。
      • 一次授權(quán)調(diào)用里,每個 tmplId 對應(yīng)的模板標(biāo)題不能存在相同的,若出現(xiàn)相同的,只保留一個。
      • 2.10.0 版本開始,支持訂閱語音消息提醒

      特別注意第三條,版本庫是2.8.2及以上的時候,訂閱消息必須發(fā)生點擊行為或是發(fā)起支付回調(diào)后,才可以調(diào)起訂閱消息的界面。這個點擊行為沒有特別要求。比如一個表單,點擊提交按鈕后,也是可以調(diào)起訂閱消息界面的。支付后的回調(diào)不需要點擊行為,也可以調(diào)起訂閱消息界面。

      獲取模板ID

      在微信公眾平臺登錄小程序,在訂閱消息功能下,進(jìn)入到我的模板,找到模板,并將模板id復(fù)制出來,如果沒有模板,需要先添加模板,再獲取模板id

      要添加新模板,點擊選用按鈕,在公共模板庫中選擇需要的模板,添加就可以了。

      有很多文章說,如果沒有合適的模板,可以創(chuàng)建自定義模板。但如果你真想去創(chuàng)建自定義模板,會發(fā)現(xiàn)根本找不到地方。
      如果想創(chuàng)建自定義模板,可通過以下方式進(jìn)行。
      1、點擊選用按鈕,來到公共模板庫。(公共模板庫中的模板,與你小程序的服務(wù)類目相關(guān))
      2、在搜索框中,輸入比較長的關(guān)鍵詞。
      3、點擊搜素,如果還是能匹配出模板來,則重新調(diào)整關(guān)鍵詞,直到?jīng)]有任何搜索結(jié)果為止。
      4、點擊頁面中的幫忙我們完善模板庫,進(jìn)行自定義模板設(shè)置。

      創(chuàng)建自定義模板的時候,一定要仔細(xì)閱讀申請模板的流程,尤其是第1條。我單拉出來重點標(biāo)注一下,因為沒仔細(xì)看第1條,第一次申請的幾個模板白白等了好幾天。

      模板標(biāo)題需體現(xiàn)具體的服務(wù)場景,要求以“通知”或“提醒”結(jié)尾,如:物流到貨通知、交易提醒。

      看到這里,會發(fā)現(xiàn)以上大部分跟網(wǎng)上的文章沒啥區(qū)別,別急,正文來了!

      uni-app代碼

      前端實現(xiàn)的是點擊提交按鈕,保存表單,保存成功后發(fā)送訂閱消息,在pages/index/index.vue下編寫如下代碼:

      <template>	<view>		<view>			<publishStep :list="setpList" :current="0" mode="number" active-color="#eb3572"></publishStep>		</view>		<view>			<u-form :model="form" ref="uForm" :rules="rules" :error-type="errorType">				<u-form-item label="姓名" label-width="160rpx" :border-bottom="true" :label-style="{"font-size":"28rpx"}" prop="realName">					<u-input v-model="form.realName" placeholder="" input-align="right" />				</u-form-item>								<u-form-item label="服務(wù)時間" label-width="160rpx" :border-bottom="true" :label-style="{"font-size":"28rpx"}"				 right-icon="arrow-right" prop="serviceTime">					<u-input v-model="form.serviceTime" placeholder="請選擇服務(wù)時間" :disabled="true" input-align="right" @click="timeShow=true" />				</u-form-item>								<u-form-item label="服務(wù)地址" label-width="160rpx" :border-bottom="true" :label-style="{"font-size":"28rpx"}" prop="serviceAddress">					<u-input v-model="form.serviceAddress" placeholder="" input-align="right" @click="selectAddress" />				</u-form-item>				<u-form-item label="聯(lián)系電話" label-width="160rpx" :border-bottom="true" :label-style="{"font-size":"28rpx"}"				 prop="lxtel">					<u-input v-model="form.lxtel" type="number" placeholder="請輸入聯(lián)系電話" input-align="right" :clearable="false" />				</u-form-item>				<u-form-item label="需求描述" label-width="160rpx" :border-bottom="true" :label-style="{"font-size":"28rpx"}"				 prop="remarks">					<u-input v-model="form.remarks" type="text" placeholder="請輸入您的需求" input-align="right" :clearable="false" />				</u-form-item>			</u-form>		</view>		<view></view>		<view>			<view>				<u-button type="error" @click="submitForm" :loading="submit_loading">確認(rèn)提交</u-button>			</view>		</view>		<u-picker mode="time" v-model="timeShow" :params="timeParams" @confirm="timeConfirm"></u-picker>	</view></template><script>	export default {		data() {			return {								form:{					realName:"",					serviceTime:"",					serviceAddress:"",					lxtel:"",					remarks:""									},				rules:{					realName: [{						required: true,						message: "請?zhí)顚懩男彰?,						trigger: "change"					}],										serviceTime: [{						required: true,						message: "請選擇服務(wù)時間",						trigger: "change"					}],										lxtel: [{						required: true,						message: "請輸入聯(lián)系電話",						trigger: "change"					}],				},				errorType: ["toast"],								timeShow:false,				timeParams:{					year: true,					month: true,					day: true,					hour: false,					minute: false,					second: false				},				submit_loading:false,			}		},						onReady() {			this.$refs.uForm.setRules(this.rules);		},				onLoad(params) {			let that = this;		},		methods: {						timeConfirm(e){				let that = this;				that.form.serviceTime = e.year +"-"+e.month+"-"+e.day			},			gotoOrder(){			    uni.redirectTo({					url:"/pages/order/order"			    })			},			submitForm(){				 let that = this;				this.$refs.uForm.validate(valid=>{					if (valid){						that.$u.api.submit_order(that.form).then(res => {							if (res.success) {								let data = res.data;								uni.showToast({									title: "提交成功",									icon: "success"								})								// #ifdef MP-WEIXIN								uni.requestSubscribeMessage({									tmplIds:["XXXXXXXXXXX"], //這里填寫tempid									success:function(subscribeMessageRes){										if(subscribeMessageRes.errMsg=="requestSubscribeMessage:ok"){											if(subscribeMessageRes.XXXXXXXXXXX=="accept"){												uni.login({													provider: "weixin",													success:function(loginRes){														if(loginRes.errMsg=="login:ok"){															const code = loginRes.code;															that.$u.api.sendSubscribeMessage({																"code":code,																"orderId":data.orderId															}).then(res=>{																that.gotoOrder()															})														}else{															that.gotoOrder()														}													},													fail() {														that.gotoOrder()													}												})											}else{												that.gotoOrder()											}										}else{											that.gotoOrder()										}																			},									fail:function(){										that.gotoOrder()									}								})								// #endif															} else {								uni.$u.toast(res.message);							}						});					}				})							}		}	}</script><style>	.setp{ padding: 40rpx 0;}	.bottom_nav {		position: fixed;		width: 100%;		height: 100rpx;		left: 0;		bottom: 0;		z-index: 9999;		background: #FFFFFF;		border-top: 1rpx #f3f3f3 solid;	}</style>

      這里的流程分為3步:
      1、提交表單,服務(wù)端返回訂單號(orderId)
      2、使用uni.requestSubscribeMessage,調(diào)起授權(quán)框,當(dāng)點擊同意后,進(jìn)入第三步。調(diào)起授權(quán)后,如果用戶同意,回調(diào)函數(shù)的參數(shù)subscribeMessageRes有兩個對象:errMsgXXXXXXXXXXX,errMsg不必多說。主要是這個XXXXXXXXXXX是什么。XXXXXXXXXXX是授權(quán)生成的,目測來看就是模板Id。
      3、使用uni.login,獲取code
      4、將codeorderId發(fā)送到服務(wù)器,服務(wù)器通過code獲取到openId,再根據(jù)orderId獲取到具體訂單數(shù)據(jù)。
      5、發(fā)送模板消息。

      如果不出意外的話,提交成功后,彈出如下授權(quán)框

      服務(wù)端代碼

      服務(wù)端ORM使用SqlSugar,微信小程序接口使用SKIT.FlurlHttpClient.Wechat庫。

      生成訂單

      提交訂單,這里只做演示,具體的代碼自己實現(xiàn)下就可以了!

      [HttpPost]public async Task<AjaxResult> SubmitOrder(order model){//生成訂單號    model.order_no = DateTime.Now.ToString("yyyyMMddHHssfffff");    model.addtime = DateTime.Now;    //ExecuteReturnIdentity方法會返回自增id    var id = await db.Insertable(model).ExecuteReturnIdentity();    return new AjaxResult(){     success=true,     data = id    };}

      AjaxResult.cs

      public class AjaxResult{/// <summary>/// 是否成功/// </summary>public bool success { get; set; } = true;/// <summary>/// 錯誤代碼/// </summary>public int code { get; set; } = 0;/// <summary>/// 返回消息/// </summary>public string message { get; set; }/// <summary>/// 返回數(shù)據(jù)/// </summary>public object data{ get; set;}}

      order.cs

      [SugarTable("order")]public class order{     /// <summary>     /// 主鍵,自增Id     /// </summary>    [SugarColumn(IsPrimaryKey = true)]    public int id { get; set; }     /// <summary>     /// 訂單編號     /// </summary>    public string order_no { get; set; }    /// <summary>    /// 姓名    /// </summary>    public string realName { get; set; }    /// <summary>    /// 時間    /// </summary>	public DateTime serviceTime { get; set; }	/// <summary>    /// 地址    /// </summary>	public string serviceAddress { get; set; }	/// <summary>    /// 聯(lián)系電話    /// </summary>	public string lxtel { get; set; }	/// <summary>    /// 備注    /// </summary>	public string remarks { get; set; }	/// <summary>    /// 創(chuàng)建時間    /// </summary>	public DateTime addtime { get; set; }}

      發(fā)送模板消息

      發(fā)送一次性訂閱的模板消息,傳的參數(shù)為前端獲取的codeorderId。根據(jù)訂單編號獲取訂單信息,以便在訂閱消息中,設(shè)置小程序信息以及打開路徑。code用于獲取用戶的openId

      [HttpPost]public async Task<AjaxResult> SendSubscribeMessage(string code,string orderId){    AjaxResult result = new AjaxResult();    if (string.IsNullOrEmpty(code) || string.IsNullOrEmpty(orderId))    {result.success = false;result.message = "參數(shù)錯誤";return result;    }    var order_model = await db.Queryable<order>().InSingleAsync(orderId);    if(order_model is null)    {result.success = false;result.message = "參數(shù)錯誤";return result;    }    //初始化WechatApiClient    var options = new WechatApiClientOptions()    {AppId = "appId",AppSecret = "appSecret "    };    var client = new WechatApiClient(options);    //獲取openId    var request = new SnsJsCode2SessionRequest();    request.JsCode = code;    var response = await client.ExecuteSnsJsCode2SessionAsync(request);    string openId = response.OpenId;    //獲取token    var tokenRequest = new CgibinTokenRequest();    var tokenResponse = await client.ExecuteCgibinTokenAsync(tokenRequest);    var token = tokenResponse.AccessToken;    //發(fā)送模板消息    var messageRequest = new CgibinMessageSubscribeSendRequest();    IDictionary<string, CgibinMessageSubscribeSendRequest.Types.DataItem> messageData = new Dictionary<string, CgibinMessageSubscribeSendRequest.Types.DataItem>    {{    "params1",     new CgibinMessageSubscribeSendRequest.Types.DataItem() {Value=order_model.order_no}},{    "params1",    new CgibinMessageSubscribeSendRequest.Types.DataItem(){Value=order_model.userNmae}},{    "params3",    new CgibinMessageSubscribeSendRequest.Types.DataItem(){Value=order_model.serviceTime}},{    "params4",    new CgibinMessageSubscribeSendRequest.Types.DataItem(){Value=order_model.serviceAddress}},{    "params5",    new CgibinMessageSubscribeSendRequest.Types.DataItem(){Value=order_model.addtime.ToString("yyyy-MM-dd HH:ss")}}    };     messageRequest.AccessToken = token;     messageRequest.ToUserOpenId = openId;     messageRequest.TemplateId = "XXXXXXXXXXX";      messageRequest.MiniProgramState = "developer";     //微信小程序要跳轉(zhuǎn)的地址。可以加參數(shù)     messageRequest.MiniProgramPagePath = "/pages/order/order_details?id=" + order_model.id;     messageRequest.Data = messageData;     var messageResponse = await client.ExecuteCgibinMessageSubscribeSendAsync(messageRequest);     if(messageResponse.ErrorCode==0)     { result.success=true; result.message = "ok"; return result;     }     result.success = false;     result.message = "error";     return result;}

      構(gòu)造模板消息的時候,使用IDictionary<string, CgibinMessageSubscribeSendRequest.Types.DataItem> messageData = new Dictionary<string, CgibinMessageSubscribeSendRequest.Types.DataItem>來進(jìn)行構(gòu)造,
      假設(shè)一個模板消息的詳細(xì)內(nèi)容是這樣的:

      • 那么上面代碼中的params1 就是character_string22,同理params2就是thing7。也就是說。IDictionary的key就是模板中.DATA前面的內(nèi)容。
      • messageRequest.TemplateId,要與前端的模板Id一致。
      • messageRequest.MiniProgramState表示跳轉(zhuǎn)微信小程序的類型。默認(rèn)為正式版
        • developer為開發(fā)版;
        • trial為體驗版;
        • formal為正式版;

      如果不出意外的話,你的微信會收到服務(wù)通知。點擊卡片后,進(jìn)入小程序的訂單詳情頁面!

      總結(jié)

      1、其實微信小程序的訂閱消息和公眾號的訂閱消息模板還是比較好申請的。如果在類目模板與歷史模板中無法找到合適自己的模板,那么自己申請一個模板。審核的話,2-3天就可以收到通知了。
      需要注意的是,申請模板的時候,最好把各項在本地保留一份。因為一旦提交申請,在公眾號或小程序后臺,你就找不到了。玩意審核沒通過,再申請的時候,前面寫的啥內(nèi)容,已經(jīng)忘的差不多了!

      2、感謝SqlSugar,為.Net開發(fā)者提供這么強(qiáng)大的ORM。真的是太方便了。
      3、感謝SKIT.FlurlHttpClient.Wechat,為.Net開發(fā)者提供這么便捷的工具。
      4、為了能快速表達(dá)清楚意思,以上前端與服務(wù)端代碼,都是精簡過的,萬萬不可直接使用!

      到此這篇關(guān)于uni-app結(jié)合.NET 7實現(xiàn)微信小程序訂閱消息推送的文章就介紹到這了,更多相關(guān)uni-app .NET 7小程序消息推送內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

      標(biāo)簽: ASP.NET
      主站蜘蛛池模板: www.久久精品| 999这里只有是极品 免费的一级黄色片 | h免费在线观看 | 日韩av免费 | 一区二区视频网站 | 久久综合久久综合久久 | 中文字幕一区二区在线观看 | 国产一区二区三区四区在线观看 | 国产精品美女久久久久久免费 | 欧美在线一二三 | 九九热在线视频免费观看 | 日本毛片视频 | 超级乱淫片国语对白免费视频 | 黄色a视频 | 国产伦精品一区二区三区在线 | 免费一区二区三区 | 久久一二三四 | 日韩福利 | 日本一区二区三区视频免费看 | 亚洲精品高清视频 | 欧美视频二区 | 激情五月婷婷在线 | 日本福利网站 | 国产又粗又长又硬又猛电影 | 国产成人在线一区二区 | 精品日韩在线 | 精品综合久久久 | 精品久久久久久 | 欧美一级片在线观看 | 99re热精品视频国产免费 | 嫩草影院永久入口 | 黄色国产大片 | 国产精品久久av | 亚洲国产精品久久久久秋霞蜜臀 | 久久久av亚洲男天堂 | 久久免费国产精品 | 亚洲精品在线视频 | 亚洲国产精品综合久久久 | 国产精品亚洲一区二区三区 | 日韩91 | 欧美日韩中 | 色吧欧美 | 一区二区免费 | 中文字幕成人免费视频 | 在线视频一区二区 | 欧美一区二 | 国产精品网址 | 久久久久久久久久久久网站 | 99精品国产高清在线观看 | 国产四区 | 日本久久久久久 | 久久不卡 | 午夜黄色影院 | 99精品在线 | 久久伊人一区 | 国产福利片在线观看 | 亚洲av毛片 | 免费的黄色片子 | 久草观看 | 国产综合精品一区二区三区 | 我和我的祖国电影在线观看免费版高清 | 一级片视频在线观看 | 激情91| 久久草在线视频 | 狠狠狠 | 中文字幕本久久精品一区 | 九九天堂网 | 日本久久影视 | 精品国产一区二区三区久久影院 | 国产最新视频 | 欧美日本亚洲 | 亚洲一区二区三区久久 | 日韩精品99 | 免费黄色在线看 | 国产精品婷婷久久久久 | 国产色播av在线 | 中文字幕视频在线观看 | 中文字幕在线永久在线视频 | 日本视频在线 | 久久久xxxx | 黄色影片免费在线观看 | 欧美激情性国产欧美无遮挡 | 日韩久久综合 | 亚洲免费视频网 | 伊人电影综合 | 久久ri资源网 | 欧美久久久久久 | 国产欧美综合一区二区三区 | 成人精品鲁一区一区二区 | 精品久久久久久久久久久久久久 | 亚洲国产精品99久久久久久久久 | 九九免费精品视频 | 欧美国产在线观看 | 久久影视精品 | 久久2| 伊人短视频 | 日韩av入口 | 91麻豆精品国产91久久久资源速度 | 午夜精品久久久久久久久久久久久 | h色视频在线观看 | 国产情侣一区二区三区 | 中文字幕亚洲一区二区三区 | 国产女人和拘做受在线视频 | 亚洲怡红院在线观看 | 国产精彩视频 | 得得啪在线视频 | 美女久久久久久久久久久 | 一级毛片免费 | 日本一区二区三区中文字幕 | 日韩精品一区二区三区四区 | 98精品国产高清在线xxxx天堂 | 日韩欧美国产精品综合嫩v 国产高清av在线一区二区三区 | 日韩久久久久久 | 成人综合在线观看 | 国产精品一区免费在线观看 | 北条麻妃一区二区三区在线 | 久久久久久久国产精品 | 中文字幕1区 | 欧美久久久久久久久久久久久久 | 久久一 | www.99精品| 日韩经典一区 | 国产真实乱全部视频 | 97久久久| 国产精品2区 | 亚州av| 黄色最新网站 | 日韩国产欧美一区 | 不卡一区| 91hd精品少妇| 欧美日韩午夜精品 | 成人免费黄色小视频 | 免费日韩 | 欧美精品成人一区二区三区四区 | 91精品国产综合久久久久久丝袜 | 欧美一区不卡 | 精品久久久久久久久久久久 | 欧美一级片在线 | av在线一区二区三区 | 日本天堂一区二区 | 91在线视频福利 | 午夜精品久久久久久久久 | 国产视频福利在线观看 | 亚洲精品在线网站 | 国产一区二区免费视频 | 日韩在线中文字幕 | 精品国产18久久久久久二百 | 激情com | 久久精品小视频 | 欧美在线网站 | 一区二区三区在线看 | 奇米影视奇米色777欧美 | 在线精品一区 | 久久成人在线 | 91国内视频在线观看 | 99久久夜色精品国产网站 | 成人精品二区 | 精品久久一区 | 国产成人精品亚洲日本在线观看 | 综合久久一区 | 中文字幕第90页 | 成年人免费看 | 久久精品国产视频 | 一区视频| 亚洲精品一区在线观看 | 日韩欧美视频 | 一区二区三区在线视频播放 | 日韩精品一区二区三区中文在线 | 一级免费毛片 | 伊人免费网 | 亚洲一区二区免费视频 | 一级特黄 | 韩国av片在线观看 | 久久99这里只有精品 | 亚洲人成人一区二区在线观看 | 天天精品视频免费观看 | 欧美jizzhd精品欧美巨大免费 | 久久久国产视频 | 亚洲黄色一区二区 | 亚洲国产精品一区二区三区 | 91文字幕巨乱亚洲香蕉 | 亚洲国产精品一区二区久久 | 亚洲黄色在线视频 | 成人精品在线观看 | caoporn国产精品免费公开 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 国产成人在线视频 | 国产在线一区二区 | 日韩中文在线播放 | 日韩一区二区三区精品 | 少妇一级淫免费放 | 亚洲视频区 | 综合国产 | 亚洲视频在线一区 | 国产精品久久久久国产a级 91福利网站在线观看 | 国产精品久久久久久婷婷天堂 | 天天射射天天 | 亚洲精品一区二区三区蜜桃久 | 成人精品国产免费网站 | 日韩视频在线观看中文字幕 | 亚洲欧美国产一区二区三区 | 97视频久久 | 91婷婷射| 色国产精品| 女同理伦片在线观看禁男之园 | av免费在线观看网站 | 91色站| 国产一区二区资源 | 久久久久久日产精品 | 亚洲综合色自拍一区 | 欧美日本韩国在线 | 中文字幕在线免费看 | 日韩精品www| 亚洲高清www | 国产精品污www一区二区三区 | 欧美综合一区二区 | 蜜桃αv| 国产永久免费 | 久久精品国产精品青草 | 日韩视频网站在线观看 | 欧美精品一区二区三区蜜桃视频 | 欧美久久久久 | 欧美日韩视频 | 亚洲精品成人免费 | 中国特级黄色片 | 性高湖久久久久久久久aaaaa | 毛片网站在线 | 五月婷婷天 | 北条麻妃一区二区在线 | 一级h片 | 久久久久国产亚洲日本 | 亚洲精品视频在线播放 | 日本狠狠色 | a毛片毛片av永久免费 | 国产一级片a | 在线免费91| 日韩免费视频 | 天堂一区| 久久久久久久久一区二区三区 | 国产一级视频 | 一级黄色片欧美 | 久久在线视频 | jizz在亚洲 | 国产精品视频入口 | 亚洲欧美在线观看 | 中文在线视频 | 久久毛片| 天堂精品 | 久久这里只有精品首页 | h免费在线观看 | 久久久高清 | 久草新视频在线观看 | 久久精品日产高清版的功能介绍 | 国产一区二区三区在线免费观看 | 中文字幕在线看片 | 国产精品久久久久久久 | 春色av | 中文字幕在线一区二区三区 | 成人乱人乱一区二区三区 | 日韩精品在线观看免费 | 欲色av| 成人国产精品视频 | 最新日韩av网址 | 欧美激情国产日韩精品一区18 | 日本成人在线视频网站 | 亚洲精品四区 | 欧美日韩91 | 成人精品视频 | 成人一区二区在线观看 | 亚洲黄网在线观看 | 欧美一级毛片免费看 | 国产一区二区三区在线看 | 精品日韩一区二区三区 | 国产欧美一区二区三区在线看 | 国产精品久久久久久福利一牛影视 | 亚洲精品成人 | 国产区视频在线观看 | 永久91嫩草亚洲精品人人 | 黄色av观看| 中文字幕日韩一区 | 国产三区在线视频 | 99精品国产在热久久 | 国产亚洲精品精品国产亚洲综合 | 国产福利精品一区 | 婷婷在线免费视频 | 国产伦精品一区二区 | 国产成人福利 | 国产精品成av人在线视午夜片 | 一级做a爰片性色毛片 | 亚洲一区二区三区四区在线观看 | 午夜视频在线观看网站 | 午夜影院在线 | 精品一区二区三区免费看 | 免费观看毛片 | 国产91视频在线观看 | 国产精品自拍视频网站 | 国产精品一区亚洲二区日本三区 | 亚洲无吗电影 | 毛片网站大全 | 天天操天天干视频 | 国产浪潮av色综合久久超碰 | 国产精品美女久久久 | www久久久久久久 | 午夜专区| 精品无码三级在线观看视频 | 欧美日本一区二区三区 | 一区二区三区视频免费看 | 天天综合网久久综合网 | 亚洲成人av电影 | 色婷综合网| 最近的中文字幕在线看视频 | 国产成人中文字幕 | 亚洲成人一区二区 | 国产美女久久久 | 性色av网 | 夜夜夜夜夜操 | jizz在线播放 | 久久国产精品一区二区 | 日韩无 | 精品日韩在线 | 国产一区视频网站 | 免费二区 | 久久久久久综合 | www..99热| 久久免费电影 | 亚洲国产精品一区二区久久 | 最新日韩视频 | 人人干人人看 | 国产毛片精品 | 三级欧美在线观看 | 日韩a视频| 欧美日本韩国一区二区 | 97在线观看视频 | 欧美国产日韩一区 | 黄色成人在线网站 | 亚洲综合久久网 | 一区二区三区免费 | 在线观看日韩 | 色接久久| av77| 国产在线精品一区二区三区 | 韩日一区 | 一区二区三区成人 | 亚洲第一视频 | 国产成年免费视频 | 在线观看欧美日韩视频 | 国产精品免费观看 | 国产视频精品一区二区三区 | 国产高清免费 | 久久com | 欧美区国产区 | 日韩精品一91爱爱 | 国产一区二区三区久久 | 国产亚洲久久 | 久久精品中文字幕一区 | 日韩手机专区 | 日韩欧美二区 | 99色在线视频 | 久久精品国产一区二区三区不卡 | 欧美黄色片免费观看 | 亚洲第一黄色 | 国产噜噜噜噜噜久久久久久久久 | 亚洲精品乱码久久久久久麻豆不卡 | 久久成人一区二区 | 综合网激情| av网站免费在线观看 | 国产精品久久国产精品 | 国产精品视频一二三 | 精品久久久av| 成人久久18免费观看 | 九九九在线 | 一区不卡 | 亚洲综合二区 | 久久综合久 | 久久成人精品一区二区三区 | 亚洲欧美一级 | 在线观看毛片网站 | 欧美99热 | 精品亚洲一区二区 | 国产精品国产三级国产aⅴ 精品91 | 国产在线视频一区二区 | 免费一区二区 | 99国产视频| www..99热 | heyzo 在线| 亚洲a在线观看 | 中文字幕视频在线免费 | 欧美hdfree性xxxx | theporn国产在线精品 | 亚洲人成中文字幕在线观看 | 免费激情av | 午夜资源| 人人射人人舔 | 国产在线不卡 | 天天干女人网 | 成人在线免费 | 中文字幕日韩欧美一区二区三区 | 涩涩视频在线看 | 国产在线一 | 日产久久 | 国产精品人人做人人爽人人添 | www.国产精品 | 九九热最新视频 | 欧美日日干 | 成人在线观看av | 欧美三级视频 | 91精品久久久久久久91蜜桃 | 日本免费视频在线观看 | 日韩在线欧美 | 伊人狠狠| 日韩精品一区二区三区在线播放 | 精品乱子伦一区二区三区 | 超碰人人干 | 亚洲国产精品99久久久久久久久 | 久久国产精品一区二区 | 在线精品国产一区二区三区 | 精品国产一区在线 | 国产成人精品免费视频大全最热 | av在线免费观看网站 | 中文字幕亚洲一区 | 精品国产黄a∨片高清在线 日韩一区二 | 欧美精品理论片大全 | 国产精品电影 | 亚洲一二三 | 香蕉久久一区二区不卡无毒影院 | 国产一区二区精品在线观看 | 国产一区亚洲二区三区 | 成人精品高清 | 成人亚洲 | 中文字幕成人av | 久久伊人久久 | 亚洲精品视频在线观看免费视频 | 国产午夜精品一区二区三区 | 欧美日韩一区二区中文字幕 | 福利亚洲 | 婷婷久久五月 | 亚洲精品在线观看免费 | 欧美日韩精品亚洲 | 久久婷婷视频 | 亚洲国产成人在线视频 | 免费看国产一级特黄aaaa大片 | 日韩欧美在| 中文字幕视频一区 | 久在线视频| 久久精品二区 | 成人免费在线视频 | 国产精品视频一区二区三区 | 国产精品一区二区在线观看 | 国产私拍视频 | 中文无码久久精品 | 日韩1区 | 中文字幕在线观看精品视频 | 精品日韩在线 | 国产中文一区二区三区 | 国产精品欧美一区二区三区 | 久久美女视频 | 成年免费观看 | 在线欧美视频 | 欧美精产国品一二三区 | 国产91亚洲精品久久久 | 国产精品中文字幕在线观看 | 日韩精品免费看 | 精品无人乱码一区二区三区 | 国产视频一区在线 | www.you日本| 久久一 | 日韩欧美在线视频 | 欧美亚洲视频在线观看 | 亚洲欧洲精品成人久久奇米网 | 欧美卡一卡二 | 欧美在线一区二区三区 | 色视频网站在线观看一=区 日韩一二三区 | 久久久蜜桃 | 综合久久网 | 国产精品视频yy9299一区 | 国产在线看片 | 精品久久精品久久 | 综合自拍偷拍 | 日韩欧美综合 | 日韩在线观看高清 | 91成人在线看 | 免费无遮挡www小视频 | 色呦呦网站在线观看 | 99亚洲视频 | 一区二区影院 | 国产精品视频一区二区三区四 | 91秦先生艺校小琴 | 精品国产乱码久久久久久密桃99 | 日韩av一区二区三区四区 | 综合色婷婷一区二区亚洲欧美国产 | 欧美全黄 | 亚洲乱码在线 | 亚洲xx视频 | 亚洲激情一区二区 | 欧美日韩一 | 亚洲精品免费观看 | 日本一区二区三区四区 | 久久综合久久综合久久 | 精品国产一区二区三区性色av | 国产日韩一区二区三区 | 亚洲成人免费在线 | 欧美一区在线视频 | www久| 久久久午夜爽爽一区二区三区三州 | 国产精品久久影院 | 一区二区三区在线播放 | 日日干,天天干 | 久久国产精品免费一区二区三区 | 国产精品极品美女在线观看免费 | 狠狠久久婷婷 | 国产小视频在线播放 | 欧美精品一区二区三区在线 | 日本三级全黄 | 久久国内免费视频 | 荡女妇边被c边呻吟视频 | 久久综合av| 日韩在线中文字幕 | 久久99精品久久久久久久青青日本 | 最近中文字幕免费观看 | 国产97色在线 | 亚洲 | 欧美一级播放 | 日本涩涩网站 | 久久久精品免费看 | 岛国在线免费 | 国产精品久久久久久久久久小说 | 欧美一区二区视频 | 国产一区二区视频在线观看 | 日韩超碰 | 国产精品久久久久久久久久东京 | 国产福利视频 | 日韩在线中文字幕视频 | 狠狠综合久久av一区二区老牛 | 免费的av在线 | 亚洲一区在线日韩在线深爱 | av下一页 | 欧美成人高清视频 | 日韩一区二区中文字幕 | 日韩精品一区二 | a毛片国产 | 成人久久18 | 啪啪毛片 | 亚洲精品成人在线 | 午夜精品久久久久久久男人的天堂 | 久久国内 | 热久久这里只有精品 | 日韩亚洲欧美综合 | 日本 欧美 三级 高清 视频 | www狠狠干| 亚洲444kkkk在线观看最新 | 一区二区三区自拍 | 成人区一区二区三区 | 欧洲一级视频 | 国产精品国产 | 美日韩在线| 日本高清中文字幕 | 午夜激情视频 | 亚洲国产二区 | 国产日韩欧美高清 | 欧美一区二区三区免费 | 久久久精品国产 | 午夜精品视频在线观看 | 国产精品成人品 | 国产高清在线观看 | 一区二区精品视频 | 亚洲一区国产精品 | 亚洲毛片网站 | 成人免费视频网站在线看 | 亚洲成人日韩 | 97在线观看视频 | 国产精品久久久久久影院8一贰佰 | 91在线看| 超碰在线一区二区三区 | 国产精品久久久久久久粉嫩 | 成人免费视频播放 | 91精品久久久久久久 | a久久| 在线观看免费毛片视频 | 欧美日韩亚洲综合 | 亚洲国产日韩一区 | 亚洲 欧美 综合 | 亚洲成a | 中文字幕国产视频 | 一区二区三区精品视频 | 欧美日韩午夜精品 | 99精品一区二区三区 | 午夜精品视频在线观看 | 女同久久 | 国产精品久久久久一区二区三区 | 欧美二区三区 | 日韩三级在线免费观看 | 欧美精品在线看 | 国产精品久久久久久久久 | 国产在线不卡视频 | 日本成人黄色网址 | 粉嫩在线| 欧美精品久久久久久久久久丰满 | 久久国产精品视频 | 日韩性网站| 一区在线观看视频 | 午夜av电影 | 四虎5151久久欧美毛片 | 在线免费观看成年人视频 | 国产欧美精品区一区二区三区 | 久久a国产 | www中文字幕 | 欧美99 | 久久精品久久久久久久久久16 | 亚洲精品中文字幕在线观看 | 日韩亚洲欧美综合 | 亚洲午夜视频在线观看 | 日韩欧美在线观看视频 | 一区在线观看视频 | 久久国产欧美日韩精品 | 欧美人成在线视频 | 亚洲欧美在线综合 |