【问题标题】:Unable create paypal payment for float amount无法为浮动金额创建贝宝付款
【发布时间】:2014-04-26 23:18:31
【问题描述】:

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

异常:访问时得到 Http 响应代码 400 https://api.sandbox.paypal.com/v1/payments/payment.

{"name":"VALIDATION_ERROR","details":[{"field":"transactions[0].item_list.items[0].price","issue":"Currency amount must be non-negative number, may optionally contain exactly 2 decimal places separated by '.', optional thousands separator ',', limited to 7 digits before the decimal point"}

我想知道像 10.00、15.00 等这样的整数都可以正常工作。这是我的示例代码:

http://pastebin.com/2NQSn3aW

我尝试了一些随机浮点数,如 2.5、3.5 等,但一直都出现同样的错误。这是paypal限制浮动金额不能用吗?

我正在使用沙盒模式。

【问题讨论】:

    标签: php rest paypal


    【解决方案1】:

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

    因为您将初始金额设置为 0.0 而不是 0.00 格式。建议货币金额必须包含精确到小数点后 2 位,以 '.' 分隔,

    【讨论】:

    • 您在问题中询问了有关货币限制的问题,所以我给您答案。 :)
    【解决方案2】:

    遇到同样的问题,所以用了这个

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

    它成功了!

    【讨论】:

      【解决方案3】:

      绝对是 PayPal 沙盒的问题。我正在使用他们的 iOS SDK 2.1.1 版。 5.00 美元的商品是不可能的。它必须是 4.99 美元或 5.01 美元。

      【讨论】:

        【解决方案4】:

        您可能正在使用新的 SDK。

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

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

        您可以查看代码here

        【讨论】:

        • 感谢您的建议。是的,这对我来说很有意义。我现在无法测试,我会在尝试后返回我的测试结果。
        • 这对我来说是接缝,这是 Paypal 的临时内部问题。目前我无法使用任何 SDK 版本使用已保存的信用卡付款
        【解决方案5】:

        正如这里所说的

        货币金额必须是非负数,可以选择包含正好2位小数用'.'分隔,

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

        您可以像这样在 php 中强制保留 2 位小数:

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

        See Demo

        【讨论】:

        • 感谢您的回复,但您的示例不起作用。它应该是“%0.2f”而不是“%0.2d”,我已经尝试过了。请看我给出的例子。
        【解决方案6】:

        我发现问题(临时)出在 Paypal 沙盒 API 中。只有沙盒 API 在尝试通过卡 ID(保险库)创建付款时才会出现此问题。

        感谢大家的宝贵时间。

        【讨论】:

          猜你喜欢
          • 2010-12-06
          • 2019-04-25
          • 2014-03-08
          • 2012-04-30
          • 2013-03-06
          • 1970-01-01
          • 2012-01-14
          • 2011-11-19
          • 2011-07-25
          相关资源
          最近更新 更多