Home  >  Article  >  Backend Development  >  Detailed explanation of examples of simulated payment page jump notifications

Detailed explanation of examples of simulated payment page jump notifications

Y2J
Y2JOriginal
2017-05-09 11:03:492239browse

This article mainly introduces in detail the relevant information on how to use SignalR to send page jump notifications. It has certain reference value. Interested friends can refer to it

Use Alipay to pay in WeChat Mall When the transaction is completed, there needs to be a transition page to prompt the user to open the page with a browser to pay, and then open WeChat after the user has completed the payment in the browser (WeChat still displays the transition page at this time), and the transition page needs to jump to the order details page. . So how does this excessive page know that it needs to jump?

What I can think of now is to use SigbalR to send a notification to tell the transition page to jump.

The first step is to add SigbalR related dll first.

The second step, customize hub

 public class myHub:Hub
 {
  public override Task OnConnected()
  {
   return base.OnConnected();
  }
 }

The third step, customize the UserIdProvider, because we need to send a jump notification to the specified user

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();
   }
  }
 }

The fourth step, register our customized UserIdProvider in startup

//SignlR
 var idProvider = new CustomerUserIdProvider();
GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => idProvider);
app.MapSignalR();

The fifth step, add this line of code to the asynchronous notification of Alipay payment completion Send a notification and pass in the order number parameter. Here, a notification is sent to the user who ordered customerid. The order customerid is the same as the ID of the current login. So the information can be received.

var myHub = GlobalHost.ConnectionManager.GetHubContext<myHub>();
myHub.Clients.User(order.OrderCustomerId.ToString()).redirctOrderDetails(order.OrderNumber);

The sixth step, accept and execute on the transition page

// 声明一个代理引用该集线器,记得$.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();

In this way, you can perfectly realize the page jump after the payment is completed. I can't think of a better way at the moment.

【Related Recommendations】

1. ASP.NET Free Video Tutorial

2. ASP.NET Tutorial

3. Geek Academy ASP.NET Video Tutorial

The above is the detailed content of Detailed explanation of examples of simulated payment page jump notifications. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn