以十进制金额向正方形提交费用

时间:2016-05-22 15:15:26

标签: square-connect

我正在尝试通过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"
}

它允许我提交整数但不是小数。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果您以美元收费,则无需使用小数 - 金额字段的最小面额以美分为单位。您可以将其设置为 22500 以收取225.00美元

以下是相关文档:https://docs.connect.squareup.com/api/connect/v2/#workingwithmonetaryamounts

货币金额,以货币表示的货币的最小面额中的最低金额。例如,当currency_code为USD时,金额为美分。