SignalR發(fā)送頁(yè)面跳轉(zhuǎn)通知的方法
微信商城使用支付寶支付的時(shí)候,需要有個(gè)過(guò)度頁(yè)面提示用戶用瀏覽器打開(kāi)頁(yè)面去支付,等用戶在瀏覽器支付完之后再打開(kāi)微信(微信此時(shí)依舊顯示的是過(guò)度頁(yè)面),過(guò)度頁(yè)面需要跳轉(zhuǎn)到訂單詳情頁(yè)面。那么這個(gè)過(guò)度頁(yè)面怎么知道需要跳轉(zhuǎn)呢?
目前能想到的就是用SigbalR發(fā)送通知告訴那個(gè)過(guò)度頁(yè)面去跳轉(zhuǎn).
第一步,先添加SigbalR相關(guān)dll.
第二步,自定義hub
public class myHub:Hub { public override Task OnConnected() { return base.OnConnected(); } }
第三步,自定義UserIdProvider,因?yàn)槲覀冃枰o指定用戶發(fā)送跳轉(zhuǎn)的通知
public class CustomerUserIdProvider: IUserIdProvider { public string GetUserId(IRequest request) { //獲取當(dāng)前登錄用戶 var customer = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer; if(customer==null) { return ""; }else { //返回當(dāng)前登錄用戶id return customer.Id.ToString(); } } }
第四步,在startup里注冊(cè)我們自定義的UserIdProvider
//SignlR var idProvider = new CustomerUserIdProvider(); GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => idProvider); app.MapSignalR();
第五步,在支付寶支付完成異步通知加上這行代碼發(fā)送通知,并且傳入訂單單號(hào)參數(shù),這里給order customerid的用戶發(fā)送通知,order customerid和當(dāng)前登錄者的id是一樣的。所以能接收到信息。
var myHub = GlobalHost.ConnectionManager.GetHubContext<myHub>(); myHub.Clients.User(order.OrderCustomerId.ToString()).redirctOrderDetails(order.OrderNumber);
第六步,在在過(guò)度頁(yè)面接受執(zhí)行
// 聲明一個(gè)代理引用該集線器,記得$.connection.后面的方法首字母必須要小寫(xiě),這也是我為什么使用別名的原因 var chat = $.connection.chinookHub; // 這里是注冊(cè)集線器調(diào)用的方法,和1.0不同的是需要chat.client后注冊(cè),1.0則不需要 chat.client.redirctOrderDetails = function (oerderNumber) { window.location.href = "/Customer/MyOrderDetails?page=4&orderNumber=" + oerderNumber; }; chat.client.redirctMoneyAccountDetail = function () { window.location.href = "/Customer/AccountDetail/Money"; }; // 啟動(dòng)連接 $.connection.hub.start();
這樣,就可以完美的實(shí)現(xiàn)支付完成后跳轉(zhuǎn)頁(yè)面了。目前沒(méi)想到更好的辦法了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Asp.net SignalR創(chuàng)建實(shí)時(shí)聊天應(yīng)用程序
- Asp.NET MVC中使用SignalR實(shí)現(xiàn)推送功能
- asp.net mvc signalr簡(jiǎn)單聊天室制作過(guò)程分析
- Asp.net使用SignalR實(shí)現(xiàn)消息提醒
- Asp.net SignalR支持的平臺(tái)有哪些
- Asp.net使用SignalR實(shí)現(xiàn)發(fā)送圖片
- 三種asp.net頁(yè)面跳轉(zhuǎn)的方法
- ASP.net實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的方法
- ASP.NET筆記之頁(yè)面跳轉(zhuǎn)、調(diào)試、form表單、viewstate、cookie的使用說(shuō)明
- 新發(fā)現(xiàn)原來(lái)documenet.URL也可以實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)
相關(guān)文章
asp.net core 獲取 MacAddress 地址方法示例
這篇文章主要介紹了asp.net core獲取MacAddress地址方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02DataTable轉(zhuǎn)成字符串復(fù)制到txt文本的小例子
DataTable轉(zhuǎn)成字符串復(fù)制到txt文本的小例子,需要的朋友可以參考一下2013-03-03.NET Core讀取配置文件方式詳細(xì)總結(jié)
這篇文章主要為大家詳細(xì)總結(jié)了.NET Core讀取配置文件方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08DataGridView使用BindingNavigator實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能
這篇文章主要介紹了DataGridView使用BindingNavigator實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能,本文主要是通過(guò)借用BindingNavigator空殼,文中通過(guò)實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下2019-11-11推薦8項(xiàng)提高 ASP.NET Web API 性能的技術(shù)
ASP.NET Web API 是非常棒的技術(shù)。編寫(xiě) Web API 十分容易,以致于很多開(kāi)發(fā)者沒(méi)有在應(yīng)用程序結(jié)構(gòu)設(shè)計(jì)上花時(shí)間來(lái)獲得很好的執(zhí)行性能。2014-08-08.Net Core官方JWT授權(quán)驗(yàn)證的全過(guò)程
這篇文章主要給大家介紹了關(guān)于.Net Core官方JWT授權(quán)驗(yàn)證的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12.NET 6開(kāi)發(fā)TodoList應(yīng)用之實(shí)現(xiàn)查詢排序
這篇文章主要介紹了如何通過(guò).NET 6實(shí)現(xiàn)查詢排序功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí).NET 6有一定的幫助,感興趣的同學(xué)可以了解一下2022-01-01