node.js - Square Payment API - 金额较小的问题
问题描述
我正在使用 Square Payment API,我在文档中找不到任何相同的东西,
假设我要收取 52.50 加元。
众所周知,它不允许小数(我使用的是 Node.js SDK v2)。
当我浏览文件时,它说金额必须是较小的面额。
我有自己的自定义表单,我想知道,当从支付表单(生成卡随机数)传递值时,我是否需要以较小面额传递金额,或者仅在 API 端,或两者兼而有之。
我向用户询问金额,但面额不小,即(52.50 加元),我如何在 SDK 和前端传递金额。
解决方案
与美元 (USD) 一样,加元 (CAD) 的最小面额是美分。
您的自定义/前端表单可以选择以美元显示金额,但 API 调用必须以最小面额显示。
正如您在下面的示例代码中看到的那样,nonce 取自付款表单,收取的金额是硬编码的。如果您想从表格中提取收费金额,您需要对其进行清理,将其转换为美分(如果以美元为单位)并确保货币 ID 正确。
示例代码
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)"
});
});
});
相关文件:
推荐阅读
- node.js - 尝试代理时出错:http://localhost:4200/api/*
- xpath - Google sheet XPath scraping: copy currency exchange rate
- python - mysql中的Python动态查询
- mysql - 在从属数据库中插入缺失的数据
- reactjs - 从 API 获取的 React 对象缺少属性
- python - 如何将熊猫数据框转换为结构独特的嵌套 json
- android - Kotlin RecyclerView 开始新活动
- javascript - apollo-server-hapi 授权验证回调未执行
- python-2.7 - 我可以使用字典来调用从同一类继承的不同类的方法吗?
- r - 将 R 数据帧隐蔽到时间序列