如何获得回调消息到我的网站的后端

本文关键字:网站 后端 我的 何获得 回调 消息 | 更新日期: 2023-09-27 18:11:04

我正在开发一个asp.net mvc网站,我使用的是第三方支付服务,它会给我回调到我的网站后付款批准。根据他们的说法,他们将服务器发送到服务器。

他们发送一个Json到一个特定的url到我的网站- www.site.com/callback。

我尝试使用HttpListenrer,但我没有收到任何信息。

  public class PostListener
{
    Task task;
    public PostListener()
    {
        task = new Task(RunServer);
        task.Start();
    }
    private static async void RunServer()
    {
        var listener = new HttpListener();
        listener.Prefixes.Add("www.site.com/callback");
        listener.Start();
        new Thread(
            () =>
            {
                while (listener.IsListening)
                {
                    var ctx = listener.GetContext();
                    ThreadPool.QueueUserWorkItem((_) => ProcessRequest(ctx));
                }
            }
            ).Start();
    }
    private static void ProcessRequest(HttpListenerContext ctx)
    {
    }
}

但是listener.GetContext()在支付被批准后没有返回任何东西,我做错了吗,需要把代码放在页面的控制器里还是什么?我需要使用不同的方法吗?

请帮忙!

谢谢。

如何获得回调消息到我的网站的后端

在控制器上创建一个方法:callback

[HttpGet]
[RouteUrl("callback")]
public ActionResult Callback(){
Return Ok();
}

显然,这是在一个实时环境中运行的,以便他们到达您。

回调url用于在付款过程完成时重定向回您的网站。这是由你的支付网关自己完成的。

他们发送一些关于交易的信息,你可以从他们的帮助教程中获得这些信息的格式,并声明一个将接受相同参数的操作。现在,无论何时调用您的操作,您都将收到这些参数。我认为没有必要打电话给听众。

public ActionResult Invoices(string JSonString)
{
    //Add System.Web.Script.Serialization namespace on top of the page
    MyModel myModelObject = 
               new JavaScriptSerializer().Deserialize<MyModel>(JSonString);
    //Use myModelObject, save to db, display message
    return View();
}

您应该创建MyModel类,其中包含您希望在JSON数据中接收的属性。