我正在尝试通过POST请求将卡充电到Square中的/locations/{location}/transactions
端点。我有一个nonce,一个位置ID和一个Guid(.NET实现)。一切正常,但我无法传递小数值。我正在使用Sandbox。
当我通过以下内容时,API会返回422,Value was not expected to be a string
{
"card_nonce":"VALID_CARD_NONCE",
"amount_money":{
"amount":"225.00",
"currency":"USD"
},
"idempotency_key":"3f5f21a5-9d6b-4277-93b2-2b257a8e64df"
}
当我通过以下内容时,API会返回422,Value was not expected to be a number 225.00
{
"card_nonce":"VALID_CARD_NONCE",
"amount_money":{
"amount": 225.00,
"currency":"USD"
},
"idempotency_key":"3f5f21a5-9d6b-4277-93b2-2b257a8e64df"
}
当我通过以下内容时,API返回200
{
"card_nonce":"VALID_CARD_NONCE",
"amount_money":{
"amount": 225,
"currency":"USD"
},
"idempotency_key":"3f5f21a5-9d6b-4277-93b2-2b257a8e64df"
}
它允许我提交整数但不是小数。有什么想法吗?
答案 0 :(得分:2)
如果您以美元收费,则无需使用小数 - 金额字段的最小面额以美分为单位。您可以将其设置为 22500 以收取225.00美元
以下是相关文档:https://docs.connect.squareup.com/api/connect/v2/#workingwithmonetaryamounts
货币金额,以货币表示的货币的最小面额中的最低金额。例如,当currency_code为USD时,金额为美分。