6

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

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

但是当我到达 PayPal 时,金额字段是空白的。有什么想法我做错了吗?

4

2 回答 2

13

如果您正在创建一个所谓的“托管按钮”(即,按钮详细信息存储在 PayPal 端的按钮),那么对https://www.paypal 的请求将忽略“金额”POST 参数。 com/cgi-bin/webscr .
这是一项安全功能,可防止人们操纵amount传递给 PayPal 进行结帐。

您可以通过以下数据识别您是否使用托管按钮;
托管按钮将具有 of 的值cmd_s-xclick包含hosted_button_id参数。

如果是这种情况,您无法通过传入额外的amountPOST 参数来更新金额。

但是,由于您正在处理捐赠并且金额根据定义是灵活的,因此您实际上不需要“托管按钮”。在按钮创建表单中,关闭“Host button with 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>
于 2013-08-03T16:10:42.687 回答
9

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">
于 2015-09-25T18:06:36.330 回答