Php 无法为浮动金额创建贝宝付款

Php 无法为浮动金额创建贝宝付款,php,rest,paypal,Php,Rest,Paypal,我正在尝试使用paypal rest api(使用信用卡ID)创建金额为19.50的直接支付,但失败。我得到了以下错误: 异常:访问时获取Http响应代码400 我想知道10.00、15.00等所有金额都能正常工作。下面是我的示例代码: 我尝试了一些随机浮动量,如2.5、3.5等,但始终得到相同的错误。这是贝宝限制浮动金额不能使用吗 我使用的是沙盒模式。正如这里所说 货币金额必须为非负数,可以选择包含精确的2位小数位,以“.”分隔 所以它应该包含2个小数位,或者没有小数位 您可以在php中强

我正在尝试使用paypal rest api(使用信用卡ID)创建金额为19.50的直接支付,但失败。我得到了以下错误:

异常:访问时获取Http响应代码400

我想知道10.00、15.00等所有金额都能正常工作。下面是我的示例代码:

我尝试了一些随机浮动量,如2.5、3.5等,但始终得到相同的错误。这是贝宝限制浮动金额不能使用吗

我使用的是沙盒模式。

正如这里所说

货币金额必须为非负数,可以选择包含精确的2位小数位,以“.”分隔

所以它应该包含2个小数位,或者没有小数位

您可以在php中强制执行2位小数,如下所示:

 <?php
 $numWithTwoDecimalPlaces = sprintf("%0.2f", $number);
正如这里所说的

货币金额必须为非负数,可以选择包含精确的2位小数位,以“.”分隔

所以它应该包含2个小数位,或者没有小数位

您可以在php中强制执行2位小数,如下所示:

 <?php
 $numWithTwoDecimalPlaces = sprintf("%0.2f", $number);

货币金额必须为非负数,可以选择正好包含由“.”分隔的2位小数

因为您将初始金额设置为0.0,而不是0.00格式。建议货币金额必须包含“.”分隔的2位小数。

货币金额必须为非负数,可以选择正好包含由“.”分隔的2位小数


因为您将初始金额设置为0.0,而不是0.00格式。建议货币金额必须包含“.”分隔的精确两位小数。

您可能正在使用新SDK

我在使用Paypal提供的SDK版本时没有发现任何错误。我用过

"require": {
    "php": ">=5.3.0",
    "ext-curl": "*",
    "ext-json": "*",
    "paypal/rest-api-sdk-php" : "0.5.*"
}    

您可以检查代码

您可能正在使用新的SDK

我在使用Paypal提供的SDK版本时没有发现任何错误。我用过

"require": {
    "php": ">=5.3.0",
    "ext-curl": "*",
    "ext-json": "*",
    "paypal/rest-api-sdk-php" : "0.5.*"
}    

您可以检查代码

我已经发现问题(暂时)在Paypal沙盒API中。只有在尝试创建按卡id付款(vault)时,沙盒API才会出现此问题


感谢您的每一位。

我已经发现问题(暂时)在Paypal沙盒API中。只有在尝试创建按卡id付款(vault)时,沙盒API才会出现此问题


感谢您的每一位。

贝宝沙盒肯定有问题。我正在使用他们的iOS SDK的2.1.1版。5美元不可能买到一件商品。它必须是4.99美元或5.01美元。

贝宝沙箱肯定有问题。我正在使用他们的iOS SDK的2.1.1版。5美元不可能买到一件商品。它必须是4.99美元或5.01美元。

也有同样的问题,所以用这个

$amount = 16.86;    
$formattedAmount = number_format($amount,2);

成功了

也有同样的问题,所以用这个

$amount = 16.86;    
$formattedAmount = number_format($amount,2);

成功了

感谢您的回复,但您的示例不起作用。它应该是“%0.2f”而不是“%0.2d”,我已经尝试过了。请看我给出的示例。感谢您的回复,但您的示例不起作用。它应该是“%0.2f”而不是“%0.2d”,我已经尝试过了。请看我给出的示例。您在问题中询问了有关货币限制的问题,因此我给您答案。:)您在问题中询问了有关货币限制的问题,因此我给您答案。:)谢谢你的建议。是的,这对我来说很有意义。我现在不能测试,我会在试用后返回测试结果。这对我来说是一个暂时的贝宝内部问题。由于目前我无法使用任何SDK版本使用保存的信用卡进行支付。谢谢您的建议。是的,这对我来说很有意义。我现在不能测试,我会在试用后返回测试结果。这对我来说是一个暂时的贝宝内部问题。目前,我无法使用任何SDK版本使用保存的信用卡付款。