如何将要支付的总金额发送到贝宝
Posted
技术标签:
【中文标题】如何将要支付的总金额发送到贝宝【英文标题】:How to send the total amount to be paid to paypal 【发布时间】:2011-12-11 03:50:47 【问题描述】:我正在尝试通过<input type="hidden" name="amount" value="$total">
发送客户要支付的总金额,其中$total
持有总金额(聪明)但是当我点击贝宝的立即购买按钮时,它显示要支付的金额为 0.00 .怎么了?我的代码是:
Total :
$total
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="SVXVEBF9CH4YU">
<input type="hidden" name="amount" value="$total">
<input type="image" src="https://www.paypalobjects.com/en_GB/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" >
<img border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" >
</form>
我正在localhost
中对其进行测试,这会造成问题吗?
【问题讨论】:
查看您生成的 html。 Smarty/php 代码不相关。这也将帮助您缩小问题范围。 我的 smarty 代码有什么问题? 尝试给出一个数值。会发生什么? 【参考方案1】:试试这段代码
<input name=AMT value="$total">
已更正,
<input type="hidden" name="amount" value=$total>
【讨论】:
对不起,此代码用于 PayPal 沙箱 NVP SetExpressCheckout【参考方案2】:您无法动态覆盖金额的原因是您有一个所谓的“PayPal 托管按钮”。 使用托管按钮,金额存储在 PayPal 端,不能用“金额”变量覆盖。 您要么想要使用非托管按钮(正如 Peter Szymkowski 在他的回答中使用的那样),要么使用 BMUpdateButton API 调用来动态更新按钮的数量。
BMUpdateButton 请求示例如下所示:
USER=Your API username
PWD=Your API password
SIGNATURE=Your API signature
VERSION=82.0
HOSTEDUBTTONID=The value of <input type="hidden" name="hosted_button_id" value="">
BUTTONTYPE=The type of button. E.g. BUYNOW
BUTTONCODE=The type of code you want to get back. E.g. HOSTED
L_BUTTONVAR0=amount=The new amount with a period as separator
L_BUTTONVAR1=item_name=Optional: a new item name if you wish
类似地,您也可以使用BMCreateButton API 创建新按钮,或使用BMButtonSearch API 搜索所有已存储托管按钮的列表(例如,自动查找按钮的 hosts_button_id )
使用托管按钮的原因是因为它更安全。一个非托管的、未加密的按钮基本上会使金额容易被操纵。欺诈交易等待发生。
【讨论】:
【参考方案3】:paypal 金额密钥是amount_1
,而不是amount
所以...
<input type="hidden" name="amount_1" value="$total">
编辑:
这非常适合我。
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" name="platnosci">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="arest@arest.pl">
<input type="hidden" name="notify_url" value="http://www.google.pl/paypal.php">
<input type="hidden" name="item_name_1" value="Item description">
<input type="hidden" name="amount_1" value="34.00">
<input type="hidden" name="currency_code" value="PLN">
<input type="hidden" name="shopping_url" value="http://www.arest.pl">
<input type="hidden" name="email" value="tester">
<input type="submit">
</form>
确保您的 $total 不为空
【讨论】:
@Nitish 请检查我的新答案 这不正确。它是amount_1
(以及 amount_n
用于任何后续项目),但这仅适用于 'cmd' 为 _cart 时。以上是关于如何将要支付的总金额发送到贝宝的主要内容,如果未能解决你的问题,请参考以下文章