我有一个遗留应用程序,我需要更改以适应新的支付处理器。 该应用程序是Asp.Net。 如果没有重建应用程序(不在预算中),我需要采取最终形式并在后面的代码中保存信息,就像它目前一样,然后我需要将相同的表单提交给第三方网址。理想情况下,一个按钮会推送给最终用户。
我在这样做的方式上画了一个完整的空白。有什么建议吗?
忘记提及JQuery和javascript都是解决方案的有效工具。
答案 0 :(得分:1)
所以目前通过代码保存结果?好吧,你可以通过在页面上放一些javascript读取表单值并发布它们(例如用jquery),然后再做实际的asp帖子来破解它。
编辑(这样的事情可能有所帮助(在某些情况下):
//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来触发页面加载时的提交。
答案 1 :(得分:1)
您可以创建一个javascript函数,该函数绑定到表单提交按钮的单击事件或表单的提交事件。该函数将需要阻止默认表单提交被触发。使用jQuery序列化表单数据,并创建同步AJAX请求以将数据提交给第三方。在ajax提交完成后,您可以触发表单提交到代码隐藏。如果ajax无法正确提交,您可以选择中止表单提交到代码隐藏。
您可能需要考虑XSS安全性,因此请查看跨源资源共享和Access-Control-Allow-Origin标头。
另一种选择是将代码隐藏作为http客户端,并将表单数据提交给第三方。
答案 2 :(得分:0)
原始流程完成后,只需提交已提交的表单数据并将其推送到您正在使用的任何网址即可。它需要对原始应用程序进行最少的修改。
我没有代码可以继续,所以我没有代码可以提供。希望有所帮助!