Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung von Beispielen für simulierte Zahlungsseitensprungbenachrichtigungen

Ausführliche Erläuterung von Beispielen für simulierte Zahlungsseitensprungbenachrichtigungen

Y2J
Y2JOriginal
2017-05-09 11:03:492176Durchsuche

Dieser Artikel stellt hauptsächlich die relevanten Informationen zur Verwendung von SignalR zum Senden von Seitensprungbenachrichtigungen vor. Er hat einen gewissen Referenzwert.

WeChat Mall verwendet Alipay, um zu bezahlen Wenn die Transaktion abgeschlossen ist, muss eine Übergangsseite vorhanden sein, die den Benutzer auffordert, die Seite mit einem Browser zu öffnen, um zu bezahlen, und dann WeChat zu öffnen, nachdem der Benutzer die Zahlung im Browser abgeschlossen hat (WeChat zeigt zu diesem Zeitpunkt immer noch die Übergangsseite an). , und die Übergangsseite muss zur Seite mit den Bestelldetails springen. Woher weiß diese übermäßige Seite, dass sie springen muss?

Was mir jetzt einfällt, ist, SigbalR zu verwenden, um eine Benachrichtigung zu senden, um die Übergangsseite anzuweisen, zu springen.

Der erste Schritt besteht darin, zuerst die SigbalR-bezogene DLL hinzuzufügen .

Der zweite Schritt, passen Sie den Hub an

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

Der dritte Schritt, passen Sie den UserIdProvider an, da wir einen Sprung senden müssen Benachrichtigung an den angegebenen Benutzer

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

Schritt 4, registrieren Sie unseren benutzerdefinierten UserIdProvider beim Start

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

Schritt 5, schließen Sie die asynchrone Zahlung ab Fügen Sie in Alipay diese Codezeile zur Benachrichtigung hinzu und übergeben Sie den Parameter „Bestellnummer“. Hier wird eine Benachrichtigung an den Benutzer gesendet, der die Kunden-ID bestellt hat, und die ID des aktuellen Logins. So können die Informationen empfangen werden.

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

Schritt 6, akzeptieren und auf der Übergangsseite ausführen

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

Auf diese Weise können Sie den Seitensprung nach Abschluss der Zahlung perfekt realisieren . Ich kann mir im Moment keinen besseren Weg vorstellen.

【Verwandte Empfehlungen】

1. ASP.NET Kostenloses Video-Tutorial

2. ASP.NET-Tutorial

3. Geek Academy ASP.NET-Video-Tutorial

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für simulierte Zahlungsseitensprungbenachrichtigungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn