0

我正在将 Payflow Advanced 集成到我们的网站中,并在 Sandbox 中进行测试。我有一个带有立即付款按钮的页面。我拥有所有必要的帐户、托管页面等,并且我成功获得了安全令牌我尝试了两种使用这些令牌访问托管页面的方法:

1)立即付款按钮打开另一个 HTML 页面,其中我的托管页面被指定为 iframe 的源,如

    <p>This is a test of hosted pages</p>
    <iframe src="https://payflowlink.paypal.com?SECURETOKEN=73nQZctvqskKbJooHoBr9DQlB&SECURETOKENID=DTesting5991376569967&MODE=TEST& BILLTOSTREET=33 Ames Road&BILLTOCITY=Groton&BILLTOSTATE=MA&BILLTOZIP=01451&BILLTOPHONE=408-110-7975" name="test_iframe" scrolling="no" width="700px" height="700px"></iframe>

当此页面打开时,我的托管页面位于 iframe 中,并且所有信息都是正确的。几秒钟后,PayPal 代码中的某些内容将浏览器重定向到完整的托管页面。整个页面上的所有内容也都是正确的。

2) 在这种方法中,我绕过中间 HTML 页面并使用 HTML 表单直接访问 PayFlow。该表单将 ACTION 设置为与方法 1 中的 src 完全相同的字符串,并提供一个提交表单的按钮。如在

    <form id='payment' action="https://payflowlink.paypal.com?SECURETOKEN=73nQZctvqskKbJooHoBr9DQlB&    SECURETOKENID=DTesting5991376569967&MODE=TEST&BILLTOSTREET=33 Ames Road&BILLTOCITY=Groton&BILLTOSTATE=MA&BILLTOZIP=01451&BILLTOPHONE=408-110-7975">
    <input display="inline" type='button' id='paypalbutton' value="Pay with Credit Card or PayPal" class='buttons' onClick="buttonclick('ccpay');">
    </form>

提交表单时会显示无效的商家消息,并且不会显示托管页面。

如果它只能正常工作,我不在乎我使用哪种方法。在方法 1 中,如何避免重定向?在方法 2 中,为什么我会收到无效的商家错误?

谢谢

4

1 回答 1

0

method="POST"您的<form>标签中没有 a 。这会导致您的浏览器默认使用 GET 方法来提交表单。反过来,这会导致浏览器从 URL 中删除所有查询参数,从而导致空请求。

因此,解决方案是添加method="POST"到您的<form>标签中。

于 2013-08-15T20:35:17.163 回答