我在将paypal表单整合到订单页面时遇到了问题。
我的订单页面目前已有一个用户填写的表单和一个提交按钮:
<form id="order-form" form name="orderform" method="post" action="send_order_email.php">
此send_order_email.php会通过并验证表单是否有效,如果不是,它会重定向到抱歉页面,如果有效,我希望它重定向到PayPal,如下所示:
<form target=paypal action="https://www.paypal.com/cgi-bin/webscr" method=post>
<input type=image src="https://www.paypal.com/en_GB/i/btn/x-click-but22.gif " border=0 name=submit alt="Make payments with PayPal - it's fast, free and secure!">
<input type=hidden name=add value=1>
<input type=hidden name=cmd value=_cart>
<input type=hidden name=business value=" info@info.co.uk">
<input type=hidden name=item_name value="item">
</form>
目前我只能通过制作action="send_order_email.php"
来获取要发送的表单,或者我可以通过制作form target=paypal action="https://www.paypal.com/cgi-bin/webscr"
使表单重定向到paypal,但是这不会通过任何验证并且不发送电子邮件。
如何让表单执行这两项操作 - 验证一个表单,然后使用paypals提交表单通过一个提交按钮重定向?
任何帮助都会非常感激。
谢谢!
答案 0 :(得分:1)
在send_order_email验证了它是正确的之后,只需生成一个包含您发布的表单的html页面(带有隐藏字段的页面),用您收到的数据填充它并使用javascript自动提交,即
<body onload="document.theform.submit()">
<form target=paypal action="https://www.paypal.com/cgi-bin/webscr" method=post name="theform">
<input type=image src="https://www.paypal.com/en_GB/i/btn/x-click-but22.gif " border=0 name=submit alt="Make payments with PayPal - it's fast, free and secure!">
<input type=hidden name=add value=1>
<input type=hidden name=cmd value=_cart>
<input type=hidden name=business value=" info@info.co.uk">
<input type=hidden name=item_name value="item">
</form>
</body>
答案 1 :(得分:0)
如果您使用POST,或者更确切地说,如果PayPal需要POST,那么我认为您不能重定向。无论如何,不是返回Location: http://www.paypal.com/foo/bar
HTTP标头。
您可以send_order_email.php
获取用户提供的信息,并将其提交给PayPal。也就是说,您的PHP代码可以构建具有各种字段的HTTP POST请求,然后将其发送到www.paypal.com并处理结果。但我怀疑这是否有效,因为PayPayl可能会要求您不应该提供信用卡号或PIN码。
正如BoydP上面所说,如果你可以在JavaScript上对客户端进行验证,那很好。但是,如果您想(或需要)在服务器上进行验证,那么最好的方法可能是使用两个屏幕:第一个用户填写信息。在第二个页面中,页面显示信息并要求用户使用您粘贴在上面的<form>
代码确认交易。