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,因?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里注冊我們自定義的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();
這樣,就可以完美的實(shí)現(xiàn)支付完成后跳轉(zhuǎn)頁面了。目前沒想到更好的辦法了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Asp.net SignalR創(chuàng)建實(shí)時聊天應(yīng)用程序
- Asp.NET MVC中使用SignalR實(shí)現(xiàn)推送功能
- asp.net mvc signalr簡單聊天室制作過程分析
- Asp.net使用SignalR實(shí)現(xiàn)消息提醒
- Asp.net SignalR支持的平臺有哪些
- Asp.net使用SignalR實(shí)現(xiàn)發(fā)送圖片
- 三種asp.net頁面跳轉(zhuǎn)的方法
- ASP.net實(shí)現(xiàn)頁面跳轉(zhuǎn)的方法
- ASP.NET筆記之頁面跳轉(zhuǎn)、調(diào)試、form表單、viewstate、cookie的使用說明
- 新發(fā)現(xiàn)原來documenet.URL也可以實(shí)現(xiàn)頁面跳轉(zhuǎn)
相關(guān)文章
asp.net core 獲取 MacAddress 地址方法示例
這篇文章主要介紹了asp.net core獲取MacAddress地址方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
DataTable轉(zhuǎn)成字符串復(fù)制到txt文本的小例子
DataTable轉(zhuǎn)成字符串復(fù)制到txt文本的小例子,需要的朋友可以參考一下2013-03-03
.NET Core讀取配置文件方式詳細(xì)總結(jié)
這篇文章主要為大家詳細(xì)總結(jié)了.NET Core讀取配置文件方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08
DataGridView使用BindingNavigator實(shí)現(xiàn)簡單分頁功能
這篇文章主要介紹了DataGridView使用BindingNavigator實(shí)現(xiàn)簡單分頁功能,本文主要是通過借用BindingNavigator空殼,文中通過實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下2019-11-11
推薦8項(xiàng)提高 ASP.NET Web API 性能的技術(shù)
ASP.NET Web API 是非常棒的技術(shù)。編寫 Web API 十分容易,以致于很多開發(fā)者沒有在應(yīng)用程序結(jié)構(gòu)設(shè)計(jì)上花時間來獲得很好的執(zhí)行性能。2014-08-08
.Net Core官方JWT授權(quán)驗(yàn)證的全過程
這篇文章主要給大家介紹了關(guān)于.Net Core官方JWT授權(quán)驗(yàn)證的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
.NET 6開發(fā)TodoList應(yīng)用之實(shí)現(xiàn)查詢排序
這篇文章主要介紹了如何通過.NET 6實(shí)現(xiàn)查詢排序功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí).NET 6有一定的幫助,感興趣的同學(xué)可以了解一下2022-01-01

