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