如何将要支付的总金额发送到贝宝

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 时。

以上是关于如何将要支付的总金额发送到贝宝的主要内容,如果未能解决你的问题,请参考以下文章

如何从ios将订单ID发送到贝宝

如何将折扣代码添加到我的购物车并将其发送到贝宝结帐?

Paypal预先批准的付款,不显示价格?

asp.net 将付款发送到贝宝帐户 [关闭]

使用 angularjs 发送到贝宝

如何建立一个给予积分的贝宝捐赠系统