0

我有一个旧版应用程序,我需要对其进行更改以适应新的支付处理器。该应用程序是 Asp.Net。在不重建应用程序(不在预算内)的情况下,我需要采用最终表单并将其中的信息保存在后面的代码中,就像现在一样,然后我需要将相同的表单提交给第三方 url。理想情况下,一键推送给最终用户。

我正在画一个完全空白的方法来做到这一点。有什么建议么?


忘了提到 JQuery 和 javascript 都是解决方案的有效工具。

4

3 回答 3

1

您可以创建一个绑定到表单提交按钮的单击事件或表单提交事件的 javascript 函数。该功能需要防止触发默认表单提交。使用jQuery对表单数据进行序列化,并创建一个同步的AJAX请求将数据提交给第三方。ajax提交完成后,就可以触发表单提交到code-behind。如果 ajax 未能正确提交,您可以选择将表单提交中止到代码隐藏。

您可能需要考虑 XSS 安全性,因此请查看跨域资源共享和 Access-Control-Allow-Origin 标头。

另一种选择是让代码隐藏充当 http 客户端并将表单数据提交给第三方。

于 2013-10-24T21:26:36.337 回答
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来触发页面加载时的提交。

于 2013-10-24T21:17:14.070 回答
0

原始过程完成后,只需获取提交的表单数据并将其推送到您正在使用的任何 URL。它需要对原始应用程序进行最少的修改。

我没有代码可以继续,所以我没有代码可以提供。希望有帮助!

于 2013-10-24T21:16:39.937 回答