php - 如何在 PHP 中计算支付网关
问题描述
我正在将支付网关与我的 PHP 应用程序集成。在通过 JavaScript 或 PHP 解决一些基本的小方程时,我遇到了一个问题。实际上,我的支付网关会从本金中提取一些百分比,因为它们有自己的规则。
我希望在用户付款时在付款启动期间扣除金额并将其添加。为了更清楚起见,下面是我的示例 - 假设用户在支付网关购买了价值 100 美元的商品,他们的付款将使用以下公式计算:-
var amount = '10352';
var percent = amount * '2.5' / '100';
var charge = percent + parseFloat('5');
var TAX = charge * '18' / '100';
var totalcharge = charge + TAX;
var okAmount = parseFloat(amount) + parseFloat(totalcharge);
//output result is *10663.28* which is correct.
但是当我尝试做减法时,它没有在 PHP 中显示正确的答案。
$amount ="10663.28";
$percent = $amount * '2.5' / '100';
$charge = $percent + '5';
$GST = $charge * '18' / '100';
$totalcharge = $charge + $GST;
$totalAmount = $amount - $totalcharge;
but the answer is not == 10352 even I try my best to apply at the same formula.
请让我知道问题是什么以及我可能做错了什么。我想知道的是我如何10663.28
再次10352
使用 PHP。太感谢了。注意:这不是我的问题,我已经申请了
解决方案
我让它像这样工作:
$amount = 10663.28;
$totalcharge = $amount * 0.0291921325550365;
$totalAmount = round($amount - $totalcharge,2);
//$totalAmount = 10352
这是一个纯粹的数学问题,您需要找出每笔交易中“总费用”的百分比是多少。
将 $totalAmount 除以 $totalcharge 得到 0.0291921325550365。
有了这个数字,您现在知道每笔交易都取了 2.919213255%。
因此 10663.28 * 0.0291921325550365 = 311.284 这是“总费用”。
10663.28 - 311.284 四舍五入等于 10352。
我还建议不要用撇号写数字,因为它们不是字符串而是整数,并添加括号以分隔不同的计算,因此您的原始公式应如下所示:
$amount = 10352;
$percent = ($amount * 2.5) / 100;
$charge = $percent + 5;
$GST = ($charge * 18) / 100;
$totalcharge = $charge + $GST;
$totalAmount = $amount - $totalcharge;
推荐阅读
- visual-studio-code - Visual Studio Code:“最近打开”没有我在上次会话中打开的文件
- intellij-idea - 来自 shell 脚本的假 go 环境
- image - 反向图像搜索科学情节(图像文件),以识别原始文章
- google-apps-script - 复制谷歌表格后受保护单元格的问题
- reactjs - Webpack Uncaught ReferenceError: babelHelpers is not defined
- css - 如何在 Vuetify 中更改 v-text-field 的宽度?
- spring-boot - 从springboot发送soap请求时出现异常:无效的Content-Type:text/html。这是错误消息而不是 SOAP 响应吗?
- swift - Swift View 中的图像为空
- javascript - 显示适合 x 轴的点
- reactjs - 如果任何状态发生变化,为什么 React Hooks 会更新所有子组件?