我有一个遗留应用程序,我需要改变,以适应一个新的支付处理器。应用程序是Asp.Net。在不重新构建应用程序(不是在预算中)的情况下,我需要采取最后一种形式,并将信息保存在后面的代码中,就像它目前所做的那样,然后我需要将相同的表单提交给第三方url。理想情况下,按下一个按钮给最终用户。
我完全没有办法做这件事。有什么建议吗?
忘记提到JQuery和javascript都是解决方案的有效工具。
发布于 2013-10-24 21:17:14
所以目前它是通过代码保存结果?那么,您可以在页面上添加一些javascript,读取表单值并发布它们(例如使用jquery),然后再进行实际的asp post。
编辑(类似这样的内容可能会有所帮助(在某些情况下):
//change the action of the form (you could just change in code or this
$('#myform').attr('action','http://newpaymentproc.com/me/');
//override the default submit
$('#myformsubmitbutton').click(function(){
//extract the form data somehow (depends on form)
var formObj;
$.each($('#myform').find('input').serializeArray(), function(i, field) {
formObj[field.name] = field.value;
});
//post to old place
$.post('/old_current.asp', formObj).then(
//after posting to old place and getting response...
//submit form to new payment processor
$('#myform').submit()
);
// Cancel the actual form submit click to give time for post
return false;
});另一种方法是让遗留代码(提交后)吐出包含数据的表单和一些javascript,以在页面加载时触发提交。
发布于 2013-10-24 21:26:36
您可以创建一个javascript函数,该函数绑定到表单提交按钮的单击事件或表单的提交事件。该函数将需要防止默认表单提交触发。使用jQuery序列化表单数据,并创建同步AJAX请求将数据提交给第三方。ajax提交完成后,可以触发提交到代码隐藏的表单。如果ajax未能正确提交,则可以选择中止提交到代码背后的表单。
您可能需要考虑XSS的安全性,因此查看跨源资源共享和访问控制允许-原产地报头。
另一种选择是让代码隐藏像http客户端那样运行,并将表单数据提交给第三方。
发布于 2013-10-24 21:16:39
在原始过程完成后,只需将提交的表单数据推送到您正在处理的任何URL。它需要对原来的应用程序进行最少的修改。
我没有代码可以继续,所以我没有代码可以给。希望这能帮上忙!
https://stackoverflow.com/questions/19576753
复制相似问题