我的表单操作会向PayPal发送隐藏的输入以进行结帐。我还需要它在发送给PayPal之前给我发电子邮件。
但是由于我的表单的动作调用了paypal,我无法触发其他功能。我以为我可以让action = self并在我的页面上做我需要的东西,然后将nessesery post变量发送到paypal。我正在拍摄下面的内容:
<?
if(isset($_POST['submit'])){
//get post data for me clean up and save then send
if(!mail(data, myemail, headers)){
//send data to paypal.
curl(https://www.paypal.com/cgi-bin/webscr);
}
}else{
?>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<!-- DATA FOR ME-->
<p>Child's Name: <? echo $child_name; ?></p>
<input type="hidden" name="child_name" value="<? echo $child_name; ?>">
<p>Birth Date: <? echo $birth_date; ?></p>
<input type="hidden" name="birth_date" value="<? echo $birth_date; ?>">
<p>Parent/Guardian Name: <? echo $name; ?></p>
<input type="hidden" name="name" value="<? echo $name; ?>">
<p>Email Address: <? echo $email; ?></p>
<input type="hidden" name="email" value="<? echo $email; ?>">
<p>Home Phone: <? echo $phone; ?></p>
<input type="hidden" name="phone" value="<? echo $phone; ?>">
<!-- DATA FOR PAYPAL-->
<input type="hidden" name="business" value="you@youremail.com">
<input type="hidden" name="item_name" value="Item Name">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="<?php echo $total; ?>">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XXXXXXXXXX">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
</form>
一旦我页面上的mail()函数成功,我应该使用curl将数据重新发送到PayPal吗?不确定这是怎么回事?
答案 0 :(得分:1)
<input type='hidden' name='notify_url' value='http://yoursite.com/post.php?action=ipn' />
<input type='hidden' name='cancel_return' value='http://yoursite.com/post.php?action=cancel' />
<input type='hidden' name='return' value='http://yoursite.com/post.php?action=return' />
最好使用像
这样的类答案 1 :(得分:1)
可能是这样的
<?
$url = "";
if(isset($_POST['submit'])){
//get post data for me clean up and save then send
if(!mail(data, myemail, headers)){
$url = "https://www.paypal.com/cgi-bin/webscr";
}
}else{
?>
<form action="<? echo $url; ?>" method="post">
<!-- Same form as in the original post -->
</form>
<?
if ($url != "") {
?>
<script language="javascript">
document.forms[0].submit();
</script>
<?
}
?>
答案 2 :(得分:0)
为什么不用javascript? onsubmit例程可以POST到CGI脚本,该脚本向您发送电子邮件,然后返回一个真值,以便正常提交跟进到PayPal。
<小时/> 想想看,你需要使用AJAX方法,这样你的浏览器就会停留在同一页面上。