【问题标题】:PayPal error "Currency amount must be non-negative number"PayPal 错误“货币金额必须为非负数”
【发布时间】:2016-08-17 12:43:39
【问题描述】:

我正在尝试实现此处找到的 CFC(冷融合)代码:

http://www.sitekickr.com/blog/integrating-paypal-payflow-pro-rest-api/

我仍处于测试阶段,甚至没有尝试传递我自己的变量,只是使用提供的 CFSET 示例。

<cfset response = paypal.capture( card_type = "visa"
      , card_number = "4556747948786484"
      , card_exp_month = "12"
      , card_exp_year = "2018"
      , card_firstname = "Bob"
      , card_lastname = "Smith"
      , amount = 15.25
      , description = "Order 1011"
 )> 

我收到此错误:

{"name":"VALIDATION_ERROR","details":[{"field":"transactions[0].amount.total","issue":"货币 amount 必须是非负数,可以选择正好包含 2 小数位用 '.' 分隔,可选千位分隔符 ',', 限制在小数点前 7 位"}],"message":"无效 请求 - 见 详细信息","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#VALIDATION_ERROR","debug_id":"dfb7b0588d38e"}

这没有任何意义,因为我传递的货币值不是负数,并且只包含两位小数。我传递的“金额”值没有明显错误。

所以我被卡住了。

【问题讨论】:

  • 您的请求是什么样的?
  • 此时,我只是发送示例 CFSET
  • 所以,我刚刚发现我可以进入我的 PayPal 开发者帐户并在沙盒菜单和交易下,获取有关我正在传递的内容的更多详细信息。总的来说,我通过了:“total”:“15.25|||” ...所以不知何故,我那里有多余的空间...不知道为什么,但似乎是这样。
  • 在 CFC 中的第 57 行设置并格式化了总变量,部分格式化包括:" & "|||" 我删除了那个位并且交易成功处理。
  • 如果您认为该解决方案对其他人有帮助,您应该合并最后两个 cmets 并将它们作为“答案”发布。 (允许在 S.O. 上回答您自己的问题)

标签: paypal coldfusion


【解决方案1】:

这是我解决问题的方法。

我发现在我的 PayPal 开发者帐户中,我可以转到菜单 Sandbox/Transactions 并获取有关交易尝试的更多详细信息。

通过这个,我发现我实际传递的值是“15.25|||”

PayPal 正在接收:“total”:“15.25|||”

经过进一步调查,在 CFC 的第 57 行,我发现

"total"= (NumberFormat(arguments.amount, "9.99")) & "|||",

我删除了:&“|||”

并从 PayPal 的沙盒中获得了成功的响应。

【讨论】:

    猜你喜欢
    • 2019-11-20
    • 2018-10-07
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多