模擬支付頁面跳轉通知的實例詳解
這篇文章主要為大家詳細介紹如何使用SignalR發送頁面跳轉通知的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
微信商城使用支付寶支付的時候,需要有個過度頁面提示用戶用瀏覽器打開頁面去支付,等用戶在瀏覽器支付完之後再打開微信(微信此時依舊顯示的是過度頁面),過度頁面需要跳到訂單詳情頁面。那麼這個過度頁面怎麼知道需要跳轉呢?
目前能想到的就是用SigbalR發送通知告訴那個過度頁面去跳轉.
#第一步,先加入SigbalR相關dll.
第二步,自訂hub
public class myHub:Hub { public override Task OnConnected() { return base.OnConnected(); } }
第三步,自訂UserIdProvider,因為我們需要給指定使用者發送跳轉的通知
public class CustomerUserIdProvider: IUserIdProvider { public string GetUserId(IRequest request) { //获取当前登录用户 var customer = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer; if(customer==null) { return ""; }else { //返回当前登录用户id return customer.Id.ToString(); } } }
第四步,在startup裡註冊我們自訂的UserIdProvider
//SignlR var idProvider = new CustomerUserIdProvider(); GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => idProvider); app.MapSignalR();
第五步,在支付寶支付完成異步通知加上這行程式碼發送通知,並且傳入訂單單號參數,這裡給order customerid的用戶發送通知,order customerid和當前登錄者的id是一樣的。所以能接收到訊息。
var myHub = GlobalHost.ConnectionManager.GetHubContext<myHub>(); myHub.Clients.User(order.OrderCustomerId.ToString()).redirctOrderDetails(order.OrderNumber);
第六步,在過度頁面接受執行
// 声明一个代理引用该集线器,记得$.connection.后面的方法首字母必须要小写,这也是我为什么使用别名的原因 var chat = $.connection.chinookHub; // 这里是注册集线器调用的方法,和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();
這樣,就可以完美的實現支付完成後跳轉頁了。目前沒想到更好的辦法了。
【相關推薦】
2. ASP.NET教學
#3. 極客學院ASP.NET影片教學
#以上是模擬支付頁面跳轉通知的實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP頁面跳轉函數詳解:header、location、redirect等函數的頁面跳轉技巧,需要具體程式碼範例引言:在開發Web網站或應用程式時,頁面之間的跳轉是一個不可或缺的功能。 PHP提供了多種方式來實現頁面跳轉,其中包括header函數、location函數以及一些第三方函式庫提供的跳轉函數,例如redirect。本文將詳細介紹這些函數的使用方

標題:使用uniapp實現頁面跳轉動畫效果近年來,行動應用程式的使用者介面設計已成為吸引使用者的重要因素之一。頁面跳轉動畫效果在提升使用者體驗和視覺化效果方面扮演著重要的角色。本文將介紹如何使用uniapp實現頁面跳轉動畫效果,並提供具體的程式碼範例。 uniapp是一個基於Vue.js開發的跨平台應用程式開發框架,可以透過一套程式碼編譯產生小程式、H5、App等多個平台的應用

如何在Vue中使用路由實現頁面跳轉?隨著前端開發技術的不斷發展,Vue.js已經成為了目前最熱門的前端框架之一。而在Vue開發中,實現頁面跳躍是不可或缺的一部分。 Vue提供了VueRouter來管理應用的路由,透過路由可以實現頁面之間的無縫切換。本文將介紹如何在Vue中使用路由實現頁面跳轉,並附有程式碼範例。首先,在Vue專案中安裝vue-router插件。

標題:PHP程式碼範例:使用POST方式傳參並實現頁面跳轉的方法在Web開發中,經常涉及如何透過POST方式傳遞參數,並在伺服器端進行處理後實現頁面跳轉的需求。 PHP作為一種流行的伺服器端腳本語言,提供了豐富的函數和語法來實現這一目的。以下將透過一個實際的範例來介紹如何使用PHP來實現這項功能。首先,我們需要準備兩個頁面,一個用來接收POST請求並處理參數

UniApp是一款跨平台開發框架,可用於快速開發小程式、App、H5等多端應用程式。但在使用UniApp開發過程中,我們也會遇到一些問題,其中一個常見問題就是報錯訊息「無法找到'xxx'頁面跳轉」。那麼,我們該如何解決這個問題呢?首先,我們需要先明確什麼造成了這個問題。這個問題一般是由於頁面的路徑設定錯誤所導致的。在UniApp中,我們通常會使用路由(router

使用Golang實現頁面跳轉的最佳實踐在開發web應用程式時,頁面跳轉是一個常見的功能需求。在Golang中,我們可以使用一些函式庫來實現頁面跳轉,例如使用Gin框架來處理路由和頁面跳轉。本文將介紹如何在Golang中實現頁面跳轉的最佳實踐,同時給出具體的程式碼範例。 Gin框架簡介Gin是一個用Go語言寫的web框架,功能強大且容易

微信小程式實作頁面跳轉動畫效果在微信小程式中,頁面跳轉是一項非常常見的功能。為了提升使用者體驗,我們可以透過添加動畫效果來讓頁面切換更加流暢和生動。以下我將介紹如何使用微信小程式的API來實現頁面跳轉動畫效果,並附上具體的程式碼範例。首先,我們需要了解微信小程式中頁面的生命週期函數。在頁面即將被展示時,可以透過監聽頁面的onShow生命週期函數來實現頁面跳躍動畫

uniapp中如何實現頁面跳轉和導航uniapp是一款支援一次編碼多端發布的前端框架,它基於Vue.js,開發者可以使用uniapp快速開發行動端應用程式。在uniapp中,實現頁面跳躍和導航是非常常見的需求。本文將介紹uniapp中如何實現頁面跳轉和導航,並提供具體的程式碼範例。一、頁面跳轉使用uniapp提供的方法進行頁面跳躍uniapp提供了一組方法用於實現
