2

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

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

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

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

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

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

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

4

2 回答 2

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>
于 2012-09-25T17:29:19.503 回答
1

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

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

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

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

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

正确的方法是使用即时付款通知 (IPN),但我建议您先尝试简单的方法。

于 2012-09-03T17:44:43.477 回答