首页 > 解决方案 > 如何在 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。太感谢了。注意:这不是我的问题,我已经申请了

标签: phpjqueryequationcalculation

解决方案


我让它像这样工作:

$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;

推荐阅读