0

我正在为网站上的预订功能制作一个 Paypal 按钮。唯一的问题是,Paypal 将只接受每个表单 200 个字符。任何额外费用均不结转。这没有问题,除非我希望我的访问者能够给我一个可能超过 200 个字符的预订描述。

有没有办法我可以:

1)通过Paypal发送超过200个字符(不要认为这是可能的)

2) 单击按钮时发送一封包含此单个表单内容的电子邮件。

或者,如果你们中的任何人有其他想法,我会全神贯注。如果你能让我的事情尽可能简单,我将不胜感激。我只知道 HTML/CSS,但我认为这里需要 PHP。如果你们中的任何人能帮助我弄清楚我也会很感激。如果表单是通过电子邮件发送的,则不需要通过 Paypal 发送,但是当用户单击“立即购买”按钮时,这两项操作都需要进行。我怎样才能做到这一点?

这是表单代码:

    <form name="Booking" class="formoid-default" style="float:right;font-size:14px;font-family:'Open Sans','Helvetica Neue','Helvetica',Arial,Verdana,sans-serif;color:#666666;width:480px" onSubmit="return validateForm()" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="MPNJK99ZNT994">
<table>
<tr class="pay"><td><input type="hidden" name="on0"value="Package">Packages & Addons</td></tr><tr><td><select name="os0">
    <option value="Standard Rental">Standard Rental $199.00 USD</option>
    <option value="All In Special">All In Special $399.00 USD</option>
    <option value="Standard Rental + Custom Software Graphics">Standard Rental + Custom Software Graphics $149.00 USD</option>
    <option value="Standard Rental + Custom Frame Paint">Standard Rental + Custom Frame Paint $99.00 USD</option>
    <option value="Standard Rental + Custom Frame Decal">Standard Rental + Custom Frame Decal $99.00 USD</option>
    <option value="Reservation Date Deposit">Reservation Date Deposit $100.00 USD</option>
</select> </td>
 </tr>
<tr class="pay"><td><input type="hidden" name="on1" value="Contact Name"><strong>Reservation date deposit</strong> ensures that your unit will be reserved for your specific date and time (units are limited). Your deposit will go towards your remaining balance due upon delivery. Please give us a call if you have any questions about reservation date deposit.<hr style="height:0px; visibility:hidden;" />Contact Name*</tr></td><tr><td><input type="text" name="os1" maxlength="200"></td></tr>
<tr class="pay"><td><input type="hidden" name="on2" value="Contact Phone">Contact Phone*</td></tr><tr><td><input type="text" name="os2" maxlength="200"></td></tr>
<tr class="pay"><td><input type="hidden" name="on3" value="Address of event location">Address of event location*</td></tr><tr><td><input type="text" name="os3" maxlength="200"></td></tr>
<tr class="pay"><td><input type="hidden" name="on4" value="Start time for your rental">Start time for your rental*</td></tr><tr><td><input type="text" name="os4" maxlength="200"></td></tr>
<tr class="pay"><td><input type="hidden" name="on5" value="Date of event">Date of event*</td></tr><tr><td><input type="text" data-date-format="mm/dd/yy" id="dp2" name="os5" maxlength="200"></td></tr>
<tr class="pay"><td><input type="hidden" name="on6" value="Comments/Information">Comments/Information<br>Please provide us any information about the event. Theme, colors, name of person being celebrated, logo, etc. Keep in mind we use this information to design your custom software graphics and watermark. The more information the better.</td></tr><tr><td><textarea type="text" cols="20" rows="5" name="os6" maxlength="2000"></textarea></td></tr>
<tr class="pay"><td><input type="hidden" name="on7" value="How did you hear about us?">How did you hear about us?</td></tr><tr><td><input type="text" name="os7" maxlength="200"></td></tr>
</table><br>
<center>
<label for="disclaimer"> <input type="checkbox" name="agree" value="agree_terms" id="disclaimer" />&nbsp;I accept all <a style="color:#3387D4;" href="terms_of_use.html" target="_blank">terms of use</a></label>
<input type="hidden" name="currency_code" value="USD">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</center>
</form>

倒数第二个形式是我正在谈论的形式。如您所见,我将其设置为 2000 的最大字符数,但 Papal 仅携带前 200 个字符。 validateForm() 检查以确保检查所需的表格和使用条款,以防您想知道。

非常感谢任何输入。感谢阅读/回复。

4

3 回答 3

1

我更喜欢有一个 PHP 脚本来处理和重定向到支付网关,包括 PayPal。

您可以使用向 PayPal 发送交易详细信息的 HTML 表单,而不是使用托管按钮。您还可以将 POST 请求发送到 PayPal 的服务器,并将详细信息作为发布数据,这是我的首选方法,因为这意味着变量business不在您的客户端代码中并且无法被操纵。

给定一个像这样的简单形式:

<form action="checkout.php" method="post">
  <input type="hidden" name="item_number" value="1" />
  <input type="hidden" name="item_name" value="My fabulous product" />
  <input type="submit" name="buy" />
</form>

您的checkout.php脚本可能如下所示:

<?php
if (isset($_POST['buy'])) {
    // merge other details PayPal needs
    $query_data = array(
        'amount' => 'COST OF ITEM',
        'business' => 'YOUR PAYPAL ADDRESS',
        'cmd' => '_xclick',
        'currency_code' => 'GBP',
        'item_number' => $_POST['item_number'],
        'item_name' => $_POST['item_name']
    );

    // redirect to PayPal
    header('Location: https://www.paypal.com/?' . http_build_query($query_data));
    exit;
}

这只是一个示例,但您应该得到图片。

针对您的实际问题,如果您采用上述方法,那么您可以在结帐脚本中执行任何操作。

一种方法是在您的数据库中创建一个订单记录(状态为“未付款”)。这将为您提供一个订单 ID,您可以将其作为custom参数传递给 PayPal。同时,您也可以$_POST['comments']通过电子邮件发送内容,但您需要先捕获用户的电子邮件地址,然后才能重定向到 PayPal。

于 2013-06-26T13:13:49.170 回答
0

您可以有一个脚本向您发送包含数据的电子邮件,然后允许买家继续使用 PayPal 进行付款。但是,我要做的是让表单将信息写入数据库,然后将订单号/ID 等分配给客户,在他们进行购买时转移到 PayPal。然后在付款完成后,您可以在系统上查找该订单 ID,并查看买家输入的所有内容。

于 2013-06-26T13:03:33.543 回答
-1

我有这个确切的问题。

我将两个 200 个字符的表单域堆叠在一起,并将第二个标记为“额外空间”。然后所有的文本都会从 PayPal 整齐完整地返回。除了几个,交通没有任何问题。

于 2015-05-13T03:37:34.773 回答