支付网关请求包含许多参数以及ReturnURL、
根据支付情况,无论成功与否,来自支付网关的状态代码和错误代码等都会通过ReturnURL、发布
当这个公布的数据被检索到网络API控制器,然后它给我的结果,
代码段:(这是一个示例代码,而不是完整的代码)
public async Task<HttpResponseMessage> PGResponse()
{
string strPGResponse = HttpContext.Current.Request.Form["msg"];
string strMerchantCode = HttpContext.Current.Request.Form["tpsl_mrct_cd"];
return Response(HttpStatusCode.OK);
}
但当我试图从支付网关获得这些发布的数据时,我不确定如何实现相同的
你们们可以在下面的链接中参考那个并没有答案的问题。AngularJs:响应来自第三方服务器的Http帖子
所以请在同样的问题上提供帮助。
提前感谢。。。
编辑--------------------
1) 我会打电话给submitCart(id,total,returnURL,currentURL)来自angularJS。
2) 此调用到达web api中的此方法公共异步任务SubmitArt(长id、长总计、字符串returnurl、字符串currenturl)
3) 之后,在上述方法和浏览器中提出的支付请求重定向到支付网关页面。
4) 在向网关提供卡id、银行名称等信息后,根据请求,网关会给我一个张贴的表格数据通过使用ReturnURL。像
http://localhost:3321/Cart/PGResponse
5) 我会用这种方法得到这些响应
public async Task<HttpResponseMessage> PGResponse()
{
string strPGResponse = HttpContext.Current.Request.Form["msg"];
string strMerchantCode = HttpContext.Current.Request.Form["tpsl_mrct_cd"];
List<Cart> CartList = await _cartService.GetByUserBasicID(Convert.ToInt64(custid));
return Response(HttpStatusCode.OK, CartList); // This is my private function
}
6) 我会成功地从网关获得响应,我想向用户显示网关响应消息以及它的购物车数据,比如CartList。那么我如何显示带有网关响应和购物车数据的感谢页面。。在我棱角分明的应用程序中。
不要将API的url作为重定向url传递。因为API只能返回数据,而不能返回应用程序。
因此,我建议您创建一个MVC控制器而不是API控制器来接收来自支付网关的数据。
public ActionResult PGResponse()
{
string strPGResponse = HttpContext.Current.Request.Form["msg"];
string strMerchantCode = HttpContext.Current.Request.Form["tpsl_mrct_cd"];
List<Cart> CartList = await _cartService.GetByUserBasicID(Convert.ToInt64(custid));
if(success){
return View("success.html");
}
return View("failed.html"); // return your angular application page.
}
CCD_ 1和CCD_ 2是用于显示支付状态的页面。
您仍然没有回到您的角度应用程序
用户应该从状态页面重定向到您的角度应用程序。您可以编写一个简单的jquery代码,在一分钟或一段时间后重定向到您的应用程序。
希望这对你有帮助。
对此,请随时提出任何疑问。