我正在尝试在我的asp.net网站上实现First Data Payment Gateway。
我已经做了所有事情,现在我可以重定向到https://checkout.globalgatewaye4.firstdata.com/payment并完成付款,但是FirstData会在Result.aspx页面上重定向到我的网站。
在该页面上我怎么知道付款成功完成或发生任何错误等。我知道它在POST方法中发送响应代码但是当我来到我的网页时它会出现如下错误:
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。
异常详细信息: System.Web.HttpException:viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保< machineKey> configuration指定相同的validationKey和验证算法。无法在群集中使用AutoGenerate。
任何帮助...
提前致谢..
答案 0 :(得分:0)
我的朋友和我称之为ViewState死亡错误。基本上这个错误可能是由各种各样的事情造成的。
以防您确实需要倾向于使用机器密钥设置。我先来看下面的清单:
1)检查您的web.config文件,确保您的机器密钥未设置为AutoGenerate。
2)如果您没有使用自动生成,请进入IIS并生成密钥,并将其粘贴到您的web.config中,以查看是否可以暂时解决问题。 (这不是一个好的长期解决方案,但它可以帮助您在同时处理长期解决方案时继续取得进展)。
3)最后,无论如何,请浏览您正在使用的控件,看看它们是否使用了视图状态。如果有,请尝试为所有控件禁用它。如果修复它,那么当您的应用尝试反序列化视图状态数据时会出现某种错误。当我尝试从单独的网站加载页面时,我发现这是一个问题,这与您正在进行的操作类似。
如果您发现禁用viewstate解决了您的问题,我不确定是否有一个好的解决方法,如果您需要继续使用viewstate。
答案 1 :(得分:0)
我想分享我的所作所为,但其他建议将受到赞赏 ..:
我遇到了这样的错误,我甚至无法前往Page_Load
事件。
所以我只创建了一个新页面并重定向到Page_Init
事件中的该页面。
我以前从未以这种方式参加过Page_Init
事件。我甚至不知道它在逻辑上是否正确。但这可以是暂时的解决方案。
我可以在Parameters
事件POST
方法中发送Page_Init
{我不知道为什么它不会在那里发出任何错误),我刚刚把它们全部放进去在会话和重定向页面。
目前已经解决了。