我做了一个表格。目前,此表单执行以下操作:
我想将其更改为执行以下操作:
这是我到目前为止所做的:
“form.php”内容
<html><head><title>Title</title></head><body>
<form action="php-form-processor.php" method="post">
<table border="0" cellspacing="5" width = "500">
<tr>
<td align="right" width="160">Choose an Item:</td>
<td align="left">
<select name="formItem" value="<?=$varItem;?>" class="input_full" >
<option value="1">Cheese</option>
</select>
</td>
</tr>
<tr bgcolor="#D0E8F5">
<td align="right" >Item count:</td>
<td align="left">
<input type="text" name="formItemCount" maxlength="50" value="<?=$varItemCount = 1;?>" class="input_full" />
</td>
</tr>
</table>
<p align="center">
<input type="submit" name="formSubmit" align = "center" value="Submit" />
</p>
</form></body></html>
“php-form-processor.php”内容
<?php
if($_POST['formSubmit'] == "Submit")
{
$varItem = $_POST['formItem'];
$varItemCount = $_POST['formItemCount'];
//database stuff
$username = "...";
$password = "...";
$hostname = "...";
// connect and add to the database varItem and varItemCount
mysql_query($sql);
mysql_close($dbhandle);
}
?>
表单更大但我简化了stackoverflow的版本。订单的价格必须根据“varItem”和“varItemCount”值更改。基本上我想在将订单写入数据库之前添加“Pay with PayPal”选项。 附:我已经注册了paypal Sandbox帐户,并添加了“买方”和“卖方”。
接下来该怎么做?
编辑:好的,所以这里有一个小指南如何解决问题。以下是一些建议:
整个过程看起来像这样:
$ sql =“UPDATE paypal_test SET payed ='1'WHERES id ='”。$ _ POST ['custom']。“'”;
现在我们有一个包含已完成和未完成表单的数据库。另外,你可以写一个逻辑,删除“旧的”未完成的订单。因此,您可以创建名为“date”的其他列,然后比较:if(current_date.days - old_date.days&gt; 7) - &gt;从DB中删除。就是这样!
答案 0 :(得分:2)
嗯,你几乎已经描述了你需要做什么:
PS:我希望你不是在等人为你重写整个剧本;)
答案 1 :(得分:1)
我不接受PayPal回复给你的内容,这是检查用户身份验证的一种草率方式,并希望用户点击“返回网站”按钮。而是使用IPN(https://www.paypal.com/ipn/)并确保将回复发回PayPal进行验证。
从PayPal查看此PHP示例:https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNImplementation
答案 2 :(得分:0)
参加聚会太晚了....但在 2021 年试试这个..
如果您想将自定义表单与贝宝智能支付按钮 (https://developer.paypal.com/docs/checkout/) 结合使用,那么您可以尝试这种方法。这对我有用,而且您也不需要 IPN(以下方法是最新的且速度更快)。
在您的前端使用这个(有了这个,您可以将表单数据发送到您的服务器):
https://developer.paypal.com/demo/checkout/#/pattern/server
在你的后端使用这个(我把创建和捕获代码放在一个文件中):
创建订单:
https://developer.paypal.com/docs/checkout/reference/server-integration/set-up-transaction/
捕获订单:
https://developer.paypal.com/docs/checkout/reference/server-integration/capture-transaction/
设置:
https://developer.paypal.com/docs/checkout/reference/server-integration/setup-sdk/
现在您可以在贝宝批准订单后将表单数据写入您的数据库。
这里给出了类似的答案
How to submit data for the address and payment details after PayPal payment is made