后端的条纹支付整数金额 - 想要翻译成漂亮的$USD.XX 在 .hbs 前端



我环顾四周,但无法得到我的进球结果。我所有的 Stripe 付款货币值都存储为默认整数,并以这种方式保存在数据库中。当我从数据库中提取值并将它们加载到变量中以传递到车把渲染页面时,我可以按预期看到没有小数点的值,当我保留相同的表单值并将其从 Stripe 传递给我的支付按钮时,将整数金额传递给此按钮会获得付款中预期的值, 但是我该怎么做才能在前端格式化该整数以使其具有漂亮的$USD。XX 值,但保持数据库与整数一起工作?当我在返回这些值的路由中将金额除以 100 时,这个转换后的值会回到付款按钮中,并在弹出付款对话框时发送较低的金额。我想通过拦截整数来避免这个问题,只对显示漂亮的前端执行格式转换。我也得到了一个编辑这个的表单,但我不希望我的用户不必担心只需要输入一个整数值,所以希望有一个像 atm 一样响应的过滤器,当你开始在那里输入值时,首先是几分钱......我只是找不到解决这个问题的简单按钮。

我得到了我想要的效果,

我所做的解决方法是创建"占位符"变量,这些变量将格式化金额的值保存为字符串,即 bal 表示 Model.balance,quo 表示 Model.quote,cre 表示 Model.credit。

在路由中将进行转换:使用格式化代码设置临时占位符变量并将其传递出去以呈现...

job.bal = parseFloat(Math.round(job.balance / 100)).toFixed(2).toString();
job.cre = parseFloat(Math.round(job.credit / 100)).toFixed(2).toString();
job.quo = parseFloat(Math.round(job.quote / 100)).toFixed(2).toString();

返回的值具有这些临时占位符值,具有我正在寻找的格式。

注意:我必须将占位符变量添加到 Model.schema 中,以及创建此架构的实例中,然后才能使用 parseFloat(...) 填充它。

之后,我能够在 .hbs 中查看将小数点金额值呈现为字符串,然后查看显示这些值的视图。

当我单击"立即付款"按钮时,它将原始{{余额}}传递到"

data-amount: {{balance}}

我使用 {{balance}} 等作为Stripe 喜欢的后端整数金额格式,然后使用 {{bal}} 等作为前端视图,以便用户在 toFixed(2) 十进制视图中查看他们的货币值。

无论这是否是最佳实践,可能不是,但这是我发现、实施并想要分享的解决方案。

最新更新