将 paypal 按钮与自定义表单集成,并在单击该按钮时将客户信息保存到数据库中

Posted

技术标签:

【中文标题】将 paypal 按钮与自定义表单集成,并在单击该按钮时将客户信息保存到数据库中【英文标题】:Integrating paypal button with a custom form and saving customer info into a database upon clicking that button 【发布时间】:2012-12-08 03:13:13 【问题描述】:

我创建了一个包含多个字段的订单表格(代码如下所述)。现在我要做的是将贝宝的“立即购买”按钮与此表单集成!由于我是这里的新手,我不知道如何完成同样的事情!如您所见,该表单有一个常规的“提交”按钮,需要将其替换为贝宝的立即购买。

我想弄清楚的另一件重要事情是如何在完成付款后通过单击“立即购买”按钮将客户输入的数据保存到数据库中。任何帮助将不胜感激。

我的自定义表单:

<!-- FORM DIV STARTS HERE -->
<div id="order-form">
<form name="orderform" id="orderform" action="" method="">

<!-- PERSONAL INFORMATION BLOCK-->

<legend class="form-header">Personal Information</legend>
<fieldset class="order-form-line">
<span class="req">Name:*</span> <input type="text" name="customername" id="customername" class="required letterswithbasicpunc" style="margin-left:78px;"/><br />
<div class="help">Enter your full name such as "John Smith"</div>
<span class="req">Email:*</span> <input type="text" name="customeremail"  class="required email" style="margin-left:82px;" /><br />
<div class="help">Enter a valid email such as "johnsmith@gmail.com"</div>
Website: <input type="text" name="customersite" class="url" style="margin-left:72px;" />
<div class="help">Enter url like "http://www.yoursitename.com"</div> 
</fieldset>

<!-- ORDER INFORMATION BLOCK-->

<legend class="form-header">Order Description</legend>
<fieldset class="order-form-line">
<div class="formbuttons">
<span class="req new">Content Type:*</span>
<input type="checkbox" name="webcontent" class="required" /> Article
<input type="checkbox" name="webcontent" /> Review
</div>
<div class="formbuttons2">
<span class="req new">Content Tone:*</span>
<input type="checkbox" name="contenttone" class="required" /> Professional 
<input type="checkbox" name="contenttone" /> Friendly
</div> 
Keyword(s): <input type="text" name="keys" class="" style="margin-left:51px;" /><br />
<div class="help">You can enter keywords in a comma-separated format</div>
Description: <div class="areatxt"><textarea rows="5" cols="31">Your description goes here</textarea></div>
<div class="help">Describe if you have any other requirements</div>
Audience: <input type="text" name="audience" class="" style="margin-left:66px;" />
<div class="help">You can provide info on your target audience</div>
</fieldset>

<!-- PAYMENT DETAILS BLOCK -->

<legend class="form-header">Payment Details</legend>
<fieldset class="order-form-line modified">
<span class="req">No. of Words:*</span> <input type="text" name="wordsno"  id="wordsno"  class="required digits" value="0" style="margin-left:31px; text-align:center;" /> <br />
<div class="help">Enter (only digits) your per word requirement such as "500" for  five-hundred word articles</div>
<span class="req">Quantity:*</span> <input type="text" name="wordsqty" id="wordsqty" class="required digits" value="0" style="margin-left:60px;text-align:center;" /> <br />
<div class="help">Enter (only digits) the total number of articles you need such as "10" for ten articles</div>
 Unit Price: <input type="text" name="wordsunitprice" value="$0.02" disabled="disabled" style="margin-left:64px;text-align:center;" /><br />
<div class="help">This is the "per word" cost</div>
Total Cost: <input type="text" name="wordstotalcost" id="wordstotalcost" value="$0.00" disabled="disabled" style="margin-left:59px;text-align:center;" /><br />
<div class="help">This reflects the total amount you would have to pay. It multiplies the 'unit price' with the result we get multiplying 'no. of words' and 'quantity'</div>
<input type="submit" value="Submit" />



</fieldset>
</form>
</div><!-- FORM DIV ENDS HERE -->

所以我的确切问题是:-

(1) 如何将自定义表单的常规 html 提交按钮替换为 paypal buy now?注意:“客户要支付的金额”将动态传递给 paypal 的购买。

(2) 如果他想将整个客户信息保存到数据库中,他会怎么做?这应该在收到贝宝端的付款确认后发生!

【问题讨论】:

【参考方案1】:

如果你想让事情尽可能简单,我会选择PayPal Payments Standard。您可以在您的 PayPal 帐户中的 Merchant Services 选项卡下创建“立即购买”按钮代码,也可以使用 Cart Upload 方法并自己构建它,这是我的建议。

基本上,您只需创建一个新表单,其中包含一堆隐藏字段来表示您将发送到 PayPal 的数据,然后您可以使用任何类型的提交按钮。 PayPal 提供list of all the standard variables you could use with this。

要将订单数据输入您自己的数据库(或发送自定义电子邮件收据、与第 3 方网络服务交互等),我建议使用 Instant Payment Notification (IPN)。该系统将所有交易数据发布到您在服务器上的侦听器脚本。您可以随心所欲地处理这些数据,而且这一切都是实时发生的。

【讨论】:

您好,非常感谢您的回复。好吧,我知道使用贝宝的按钮管理器来创建托管/非托管按钮。但是,说到定制,我感到很困惑。我可以使用 IPN 将所有额外数据(请查看我的表单代码中给出的“订单信息块” - 这些信息需要保存)到我的数据库中吗? 如果您有大量需要管理的自定义数据,我建议您在将用户发送到 PayPal 之前将订单添加到您的数据库中。这样,您可以保存所需的所有数据,将其设置为待处理状态,然后您可以在发票参数中将该记录 ID 传递给 PayPal。这样,您将在 IPN/PDT/等中获得相同的发票价值。您可以使用它从数据库中提取数据,将其更新为已完成,或以您需要的任何其他方式处理它。这也使您可以更轻松地交叉参考 PayPal 付款与您的订单,因为您拥有该 ID 听起来是个不错的建议。但是,由于在 php 和 IPN/PDT 方面我是一个真正的新手,我想知道您是否可以向我推荐一些教程,以便将您的建议变为现实。提前致谢。

以上是关于将 paypal 按钮与自定义表单集成,并在单击该按钮时将客户信息保存到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 使 UITableView 与自定义单元格在按钮单击时可编辑

在 PayPal 按钮单击上解析表单数据?

如何在 ASP.NET MVC 中将条带支付与自定义表单集成? [关闭]

如何创建payapal的付款表单?

在不使用 PayPal 按钮的情况下将 PayPal .NET SDK 集成到网站中

自定义 PayPal 捐赠按钮以将信息传递到 PayPal 页面