我正在尝试将sagePay集成到ASP.NET MVC项目中。我使用了SagePay的iframe模式。 在我使用付款按钮提交信用卡详细信息后,我可以通过消息“0000:授权成功”和<来通知我的通知控制器(我已将通知URL发送给我们) strong> WasTransactionSuccessful为真。
控制器代码:
public ActionResult Notify(SagePayResponse response)
{
if (string.IsNullOrEmpty(response.VendorTxCode))
{
return new ErrorResult();
}
if (response.WasTransactionSuccessful)
{
return RedirectToAction("Success", new { vendorTxCode = response.VendorTxCode });
}
else
{
return RedirectToAction("Failed", new { vendorTxCode = response.VendorTxCode });
}
}
同一个控制器使用相同的值重复调用五次。
但是最终的回复出现错误“5004:交易状态无效”。变量 WasTransactionSuccessful为false 。如图所示。
最后我相信由于这些错误,我会在包含IFrame的同一页面中出现以下错误。
七到八分钟后,我的PaymentResponse控制器再次被调用,错误消息“2008:交易超时”。
请帮我找出此错误的实际原因。
答案 0 :(得分:0)
解决了美国国家用户需要通过的额外字段,即州代码,这是缺失的。