如何获得回调消息到我的网站的后端
本文关键字:网站 后端 我的 何获得 回调 消息 | 更新日期: 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数据中接收的属性。