如何提交一份表格,然后将信息提交给PayPal进行付款?

时间:2012-08-13 18:14:34

标签: javascript forms paypal

这是我的第一个问题......

因此,我为本地娱乐报纸和广告业务运行所有与IT相关的内容。 我们通过邮件和在线邮件销售分类广告。 在我来之前,他们只会让人们把他们的广告信息输入,他们是自己的数学,然后告诉我们他们欠多少钱,他们不应该经历的麻烦。但更糟糕的是,他们只会输入一些输入字段中的信用卡信息,然后当他们将表格提交给我们的网站主机cgi系统时,我们会将这些信息邮寄给我们......我知道这很糟糕。

到目前为止,我已经完全使用php重做了网站,并且我的表单看起来很漂亮,它为客户完成所有字数统计/数学运算,然后将从readonly字段到期的结束金额复制到我隐藏的“金额”变量中对于贝宝现在购买它按钮(显然我们想用paypal现在收到付款..)。我的问题是按钮提交了一个表单,其中包含所需的信息到paypal,它带来了现在购买它的新价格屏幕,但我的其他表格需要提交并通过电子邮件发送给我,同时他们去PayPal,我在收到信息之前我不需要付款才能验证我可以将那些不付款的信息丢弃。

每个表单在独立使用时效果很好,我怎样才能通过电子邮件发送给我,然后再向PayPal提交另一个表格以便价格上涨?我是新的...但我对JS有很好的理解,所以如果这是解决方案,那很好。任何帮助将不胜感激。

如果有帮助,这里是指向包含表单的.php文件的链接。我确实删除了电子邮件和操作信息以及我们的paypal商业ID只是因为....我不希望随机表单提交到我们的电子邮件,我不想要任何奇怪的贝宝。无论如何,链接http://www.whatzup.com/content/diningclub/classified2.php

我的代码可能很乱,而且不专业,但是我17岁,正在学习,因为我接受这份工作,而我的老板知道这一点。考虑到这一点,任何有关ANYTHING的指针/提示都会很棒。顶部的所有javascript都是字数统计或我试图让它工作的东西。我会将我的最终JS放入它自己的文件中,并将其包含在标题中,就像我输入数学文件一样。

修改: 我真的难倒在这里,如果我们不能让这个工作,我将不得不在他们提交的新窗口中有一个表单弹出窗口,告诉他们回到另一页并用Paypal支付...哪个是可怜的不专业。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,问题是您希望客户使用PayPal付款并同时邮寄给您?然后可能在付款完成后向您发送电子邮件。

简单方法是使用“成功页面”和“取消页面”,客户在付款完成或取消后结束。

您可以通过在高级功能下编辑按钮来添加此功能: “在结账时让客户访问此网址”

您还可以在此处选中“添加高级变量”,以便添加客户的唯一标识符或电子邮件。

在这两页上,您可以轻松发送电子邮件。

正确的方法是使用Instant Payment Notifications (IPN),但我建议您首先尝试使用简单的方法。

答案 1 :(得分:1)

这是我做过的事情,其他任何人都想知道。 第一个表单提交到这个PHP脚本,其中包含一个新表单,并使用旧表单中的数据填充金额部分。然后,如果表单发送成功,第二个是用JS提交的。

使用没有延迟,你可以发送这样的多个表格,虽然从技术上来说不是从一个页面看起来会以这种方式呈现给用户。

 <script type="text/javascript">

function submitt()
{
setTimeout('document.paypal.submit()',1000);
}
</script>


<?php
$Amount  = $_REQUEST['amount'];
$to      = "XXXX";
$from    = $_REQUEST['email'];
$name    = $_REQUEST['Name'];
$headers = "From: $from" . PHP_EOL;
$subject = "Classified Ad submission";

$fields                         = array();
$fields["Name"]                 = "\nName";
$fields["email"]                = "\nEmail";
$fields["Phone"]                = "\nPhone";
$fields["WorkPhone"]            = "\nWork Phone";
$fields["Address"]              = "\nStreet Address";
$fields["City"]                 = "City";
$fields["State"]                = "State";
$fields["Zip"]                  = "Zip Code";
$fields["Classification"]       = "\nClassification";
$fields["Ad-Headline"]          = "\nHeadline";
$fields["Other-Classification"] = "\nAlternate Classification";
$fields["Ad-Content"]           = "\nAd Content";
$fields["Words"]                = "\nWord Count";
$fields["Weeks"]                = "\nWeeks to Run";
$fields["WordCount"]            = "\nTotal Words";
$fields["Rate"]                 = "\nWord Rate";
$fields["GrossAmountDue"]       = "\nGross Amount";
$fields["NonProfit"]            = "\nNon Profit Ad?";


$body = "This Ad has been submitted:\n\n";
foreach ($fields as $a => $b) {
    $body .= sprintf("%20s: %s\n", $b, $_REQUEST[$a]);
}

if ($from == '') {
    print "You have not entered an email, please go back and try again";
} else {
    if ($name == '') {
        print "You have not entered a name, please go back and try again";
    } else {
        $send = mail($to, $subject, $body, "From: XXXX" . PHP_EOL);
        if ($send) {
            print "Thank you $Name, your Ad has been submitted, redirecting to paypal.";
            echo "<SCRIPT LANGUAGE='javascript'>submitt();</SCRIPT>";
        } else {
            print "ERROR";
        }
    }
}


?> 

<form action="https://www.paypal.com/cgi-bin/webscr" id="paypal" onClick="sendtotal()" target="_top" name="paypal" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="XXXXXXXXXXX">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="Classified Ad">
<input type="hidden" name="amount" value="<?php echo $_POST['amount'];?>" />
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="button_subtype" value="services">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="cn" value="Add special instructions to the seller:">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="shipping" value="0.00">
</form>