Paypal 贝宝:试图通过捐赠按钮传递金额

Paypal 贝宝:试图通过捐赠按钮传递金额,paypal,donations,urlvariables,Paypal,Donations,Urlvariables,我设置了一个捐赠按钮,用户可以输入捐赠金额。我正试图用按钮发送金额。我可以在按钮设置中的添加高级变量中输入amount=1.00,这很好。但是,我没有成功地将金额作为URL的一部分发送。我在PayPal按钮表单中添加了以下行: <input type="hidden" name="amount" value="9.99" /> 但是当我进入PayPal时,金额字段是空的。你知道我做错了什么吗?如果你正在创建一个所谓的“托管按钮”(也就是说,按钮详细信息存储在PayPal端的按钮

我设置了一个捐赠按钮,用户可以输入捐赠金额。我正试图用按钮发送金额。我可以在按钮设置中的添加高级变量中输入amount=1.00,这很好。但是,我没有成功地将金额作为URL的一部分发送。我在PayPal按钮表单中添加了以下行:

<input type="hidden" name="amount" value="9.99" />


但是当我进入PayPal时,金额字段是空的。你知道我做错了什么吗?

如果你正在创建一个所谓的“托管按钮”(也就是说,按钮详细信息存储在PayPal端的按钮),那么对于发送的请求,“金额”POST参数将被忽略。
这是一项安全功能,防止人们操纵传递给PayPal进行结帐的
金额

您可以通过以下数据确定是否正在使用托管按钮
托管按钮将具有
\s-xclick
cmd
值,并包括
托管按钮id
参数

如果是这种情况,则不能通过传入额外的
amount
POST参数来更新金额

然而,因为你处理的是捐款,而且金额根据定义是灵活的,所以实际上你不需要一个“托管按钮”。 在按钮创建窗体中,关闭“主机按钮与PayPal”,或编写自己的指向PayPal的命令。
如果执行此操作,可以通过
amount
POST参数设置金额

例如,下面的工作很好

<form method="POST" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" name="cmd" value="_donations">
<label for="amount">Amount: </label><input type="text" name="amount" value="">
<input type="submit" name="submit" value="Pay with PayPal">
</form>

数量:

Robert的解决方案是正确的,但是如果没有隐藏的“业务”字段(该字段应具有与您的PayPal帐户关联的电子邮件地址的值),非托管PayPal表单将无法工作

为确保彻底性,还应包括其他领域:

<input type="hidden" name="business" value="myemail@here.com">
<input type="hidden" name="item_name" value="Donation Description">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="tax" value="0">


我相信你做不到。这里有一个关于它的讨论:。谢谢。看起来Paypal在这方面有很多问题。至少我没有失去理智。哇,等等。“这不是一个bug,这是一个特性!”。我会在我的回答中澄清。谢谢你的帖子,它也为我澄清了这个问题。一个问题:你说的“写你自己的指向贝宝”是什么意思?我只是想在我的网站上挂上“捐赠”按钮之前,把一切都弄清楚。此外,为了确保有一个安全层,如果我没有使用托管按钮,我是否应该使用加密的网站支付功能?您可以通过PayPal的“按钮管理器”创建按钮,或者自己编写
元素。任何一个都可以接受捐赠。关于安全问题;担保通常用于确保支付的金额,并防止任何人篡改该金额。这不适用于捐赠按钮(正是因为您希望允许人们修改金额),因此您不需要加密的网站付款。这是不够的-您必须提供
业务
项目名称
<代码>货币\u代码
也是一个好主意。有关更多详细信息,请参阅。PayPal还声明,您还可以在业务领域将您的商户ID替换为电子邮件。这有助于避免垃圾邮件发送者获取您的电子邮件地址。如果您希望捐赠者能够设置定期捐款,则“金额”字段必须为零。如果指定任何非零值,PayPal不会向捐赠者提供设置定期捐赠的选项,而是假设捐赠者一次性捐赠指定金额。