2015-05-20 41 views
1

我正在使用平方连接库,创建项目时,我的价格被截断。例如,如果我将我的物品价格设置为123.13,则出现的结果是1.23。平方API截断价格?

这里是我的代码示例:

squareRouter.post('/item', function(req, res){ 
var item = req.body.item; 
console.log(item); 
square.api('/me/items', 'POST', item, function(err, resp){ 
    data_handler(err, resp, res); 
    }); 
}); 
在控制台窗口

,这里是我的项目目标:

{ variations: { 
    pricing_type: 'FIXED_PRICING', 
    price_money: { currency_code: 'USD', amount: 123.13 }, 
    name: 'Small' }, 
name: 'The Real test', 
description: 'The price of this should be $123.13', 
visibility: true, 
available_online: true, 
available_for_pickup: true } 

但在我的仪表板,enter image description here

我使用方形连接npm模块可在此处获得: https://www.npmjs.com/package/square-connect

我有难看的感觉,这是npm模块中的一个错误,不是我正在做的事情,但我很少在实践中发现它是真实的。我在这里错过了什么,或者我是否需要在库中找到违规代码并修复它?

回答

1

Square API docs表明当currency_codeUSD时,那么amount是美分的数量,而不是美元的数量。所以你应该使用12313而不是123.13

例如,它们的示例代码为4.00美元,使用400代表amount

"variations": [ 
    { 
     "name": "Small", 
     "pricing_type": "FIXED_PRICING", 
     "price_money": { 
     "currency_code": "USD", 
     "amount": 400 
     } 
    } 
    ] 
+0

考虑到他们将单位指定为United States ** Dollars **,这很奇怪。它应该是真正的USC。 – idbehold

+1

API使用许多美分来避免使用浮点数时可能发生的舍入错误。这实际上是财务软件中相当常见的做法。 – Troy