【问题标题】:How can I submit one form and then submit information to paypal for payment?如何提交一份表格,然后将信息提交到贝宝付款?
【发布时间】:2012-08-10 00:21:32
【问题描述】:

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

所以我为当地的一家娱乐报纸和广告公司负责所有与 IT 相关的工作。 我们通过纸质邮件和在线邮件按字词销售分类广告。 在我来之前,他们会简单地让人们输入他们的广告信息,他们是否有自己的数学,然后告诉我们他们欠了多少,这是他们不应该经历的麻烦。但更糟糕的是,他们只会在几个输入字段中输入他们的信用卡信息,然后当他们将表单提交给我们的网络主机 cgi 系统时,这些信息会邮寄给我们……我知道这是个糟糕的主意。

到目前为止,我已经用 php 完全重做了网站,并且我的表单看起来漂亮整洁,它为客户完成了所有的字数计数/数学运算,然后将来自只读字段的最终金额复制到我隐藏的“金额”变量中对于贝宝现在购买按钮(显然我们想使用贝宝现在接收付款..)。我的问题是该按钮向贝宝提交了一个包含所需信息的表单,这会显示带有新价格的“立即购买”屏幕,但是我的其他表单需要在他们转到贝宝的同时提交并通过电子邮件发送给我,我在我获得信息之前不需要验证付款,我可以直接丢弃那些不付款的。

每个表格在独立使用时都能完美运行,我怎样才能将信息通过电子邮件发送给我,然后将另一个表格提交给贝宝,这样价格就会出现?我是新手……但我对 JS 有很好的了解,所以如果这是解决方案,那就太好了。任何帮助将不胜感激。

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

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

编辑: 我真的很难过,如果我们不能让它工作,我将不得不在他们提交时在一个新窗口中弹出一个表单,告诉他们返回另一个页面并使用 Paypal 付款......这太不专业了。

【问题讨论】:

    标签: javascript forms paypal


    【解决方案1】:

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

    简单的方法是使用“成功页面”和客户在付款完成或取消后最终进入的“取消页面”。

    您可以通过在高级功能下编辑按钮来添加此功能: “在客户完成结帐后将其带到此 URL”

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

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

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

    【讨论】:

    • 感谢您的努力,但这完全不可靠。谁在付款后诚实地坚持观看页面加载?哈哈。这不仅仅是我付款所需的电子邮件。它包含大约 25 个不同的字段,其中包含我在付款后必须拥有的信息。最后我的解决方案是让他们提交第一个表格,该表格将向我发送我需要的所有新信息,然后如果他们不付款,我会丢弃电子邮件。然后我在 paypal 的表单部分中使用 echo $POST_MY VARIABLE ,因为它永远不会是相同的价格。延迟 3 秒后,javascript 会将他们重定向到 paypal。
    • 当然使用提交页面上隐藏的贝宝表格。基本上提交了一个表单,它通过电子邮件发送给我并在后台自动填充第二个表单。然后提交第二个表单(paypal)。如果有人遇到类似问题并遇到此问题,请在此处联系我,我很乐意分享我的代码。
    • IPN 不是我所需要的......根本不需要。我已经将它用于单独的表格。不过还是谢谢。
    【解决方案2】:

    这就是我所做的,以防其他人想知道。 第一个表单提交给这个 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>
    

    【讨论】:

      猜你喜欢
      • 2015-06-05
      • 2012-12-17
      • 2014-03-08
      • 1970-01-01
      • 2011-11-24
      • 2011-07-25
      • 2016-03-01
      • 2012-04-18
      • 2012-06-16
      相关资源
      最近更新 更多