【发布时间】:2014-05-09 14:25:46
【问题描述】:
情况是这样的 - 在我的订单页面上,我有 2 个表单:总共有“订单提交”和“Pay Paypal 按钮”。客户必须提交 2 个表单(一个接一个) - 我想把它带回一个提交。
设置:
表格 1:调用提交时发送到 Commerce 的 submit.php 脚本(计算 + 订单数组)。
表格 2:调用 Paypal 脚本支付总额。
现在的工作方式:客户提交表格 2 (Paypal),Ipn.php 在接受付款时收到“完成”通知,并使用付款信息更新 DBase。 然后客户必须提交表格 1,从 Dbase 更新付款信息(支付金额 = 0)。 Commerce 通过更新的付款信息获取订单。
我希望客户只提交表格 2 (Paypal),其余部分自动完成。
A) 来自 Dbse 的表格 1 更新
B) 表格 1 在更新后自动提交。
我的 php 文件。
1) submit.php(我可以控制它)
2) Paypal(我无法控制)
3) Ipn.php(我可以控制它)
表格一:
<form action="../../order/submit.php" id="Formulaire" method="post" name="Formulaire" target="preview">
<button id="submit" class="buttonsubmit" name="_Commande" onclick="return checkform();" type="submit">
Order / Commandez </button>
表格2:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" name="Paypal" target="_blank" id="Paypal">
<button class="buttonsubmitpaypal" id="buttonpaypal" name="_Paypal" onclick="alert('IMPORTANT: you MUST come back WITHOUT refreshing browser, click PREVIEW to reflect payment then SUBMIT your order.');PayPalSubMitFinal();" />
我看到一篇文章可能是我的解决方案,虽然(因为我不是程序员 - 但我可以适应),但我不确定它是否适合我,我不太了解如何实现:
Submit forms, one after another with jQuery?
我正在考虑的解决方案,不确定是否现实:
将 Ipn.php 集成到我的 Submit.php 脚本中,当 Paypal 发送“已完成”通知时,它会触发提交机制。不知道如何实现“if 的侦听部分”。但是,脚本将无法从订单 1 中获取信息......所以......
感谢您的提示。
更新 - 下面建议的测试解决方案:
我在 submit.php 表单中集成了 ipn.php,并在收到“已完成”通知时添加:
$emailto = 'me@me.ca'; // this is to ckeck if it works - I receive it.
$subject = $_POST['payment_status'];
$text ="success submit IPN". $_POST['custom'];
$headers = 'From: "" <"' . $_POST['payment_status']. '">'. "\r\n".
"Content-type:text/html;charset=iso-8859-1" . "\r\n";
mail($emailto, $subject, $text, $headers);
// 然后我触发提供的脚本(我在其他地方测试过,它可以工作)
$click = '<script type="text/javascript">window.top.parent.parent.submitsubmit();</script>';
echo $click;
脚本本身:
function submitsubmit() {
$("#submit").click();
}
结果:提交按钮未触发。我看不出有什么问题。
我在这里用一个新问题简化了我的问题:
Can we trigger a script on original window even if script runs in _blank window
【问题讨论】:
-
为什么不直接在用户提交第二个表单时运行整个流程?
标签: php jquery forms form-submit