Node.js 方形付款API-金额面额较小的问题

Node.js 方形付款API-金额面额较小的问题,node.js,square,Node.js,Square,我使用的是Square Payment API,在相同的文档中找不到任何内容 假设我想收取52.50加元 众所周知,它不允许十进制数(我使用的是Node.jssdkv2) 当我翻阅文件时,它说金额必须是较小的面额 我有自己的自定义表单,我想知道,当从支付表单(生成卡nonce)传递值时,我需要传递较小面额的金额,还是只在API端传递,或者两者都需要 我向用户索要的金额没有更小的面额,即(52.50加元),我如何在SDK和前端传递金额。加元(加元)的最小面额,如美元(USD),是美分 您的自定义/

我使用的是Square Payment API,在相同的文档中找不到任何内容

假设我想收取52.50加元

众所周知,它不允许十进制数(我使用的是Node.jssdkv2)

当我翻阅文件时,它说金额必须是较小的面额

我有自己的自定义表单,我想知道,当从支付表单(生成卡nonce)传递值时,我需要传递较小面额的金额,还是只在API端传递,或者两者都需要


我向用户索要的金额没有更小的面额,即(52.50加元),我如何在SDK和前端传递金额。

加元(加元)的最小面额,如美元(USD),是美分

您的自定义/前端表单可能选择以美元显示金额,但API调用必须使用最小面额

正如您在下面的示例代码中所看到的,nonce取自付款表单,收费金额是硬编码的。如果您想从表单中取下已收取的金额,则需要将其消毒,将其转换为美分(如果为美元),并确保货币ID正确

示例代码 资料来源:

相关文件:

我是否也需要在前端表单中传递较小面额的金额?如上所述,表单由您设计。你可以随心所欲。我个人不会把价格写进表格中,因为任何精明的人都可以随意改变价格为免费或0.01美元。相反,我会在数据库中有一个产品列表,根据他们的购物车计算成本,将其显示给用户并收集他们的付款信息。然后在后端,向用户收取他们选择的产品的费用,并处理他们的订单。
router.post('/process-payment', function(req,res,next){
  var request_params = req.body;

  var idempotency_key = require('crypto').randomBytes(64).toString('hex');

  // Charge the customer's card
  var transactions_api = new squareConnect.TransactionsApi();
  var request_body = {
    card_nonce: request_params.nonce,
    amount_money: {
      amount: 100, // $1.00 charge
      currency: 'USD'
    },
    idempotency_key: idempotency_key
  };
  transactions_api.charge(config.squareLocationId, request_body).then(function(data) {
    console.log(util.inspect(data, false, null));
    res.render('process-payment', {
      'title': 'Payment Successful',
      'result': "Payment Successful (see console for transaction output)"
    });
  }, function(error) {
    console.log(util.inspect(error.status, false, null));
    res.render('process-payment', {
      'title': 'Payment Failure',
      'result': "Payment Failed (see console for error output)"
    });
  });

});