SagePay回应问题

时间:2014-03-26 10:27:24

标签: c# asp.net-mvc sagepay

我正在尝试将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 });
            }
        }

同一个控制器使用相同的值重复调用五次

enter image description here

但是最终的回复出现错误“5004:交易状态无效”。变量 WasTransactionSuccessful为false 。如图所示。

enter image description here

最后我相信由于这些错误,我会在包含IFrame的同一页面中出现以下错误。

enter image description here

七到八分钟后,我的PaymentResponse控制器再次被调用,错误消息“2008:交易超时”

enter image description here

请帮我找出此错误的实际原因。

1 个答案:

答案 0 :(得分:0)

解决了美国国家用户需要通过的额外字段,即州代码,这是缺失的。