如何在PHP中计算支付网关

问题描述 投票:2回答:2

我正在将Payment Gateway与我的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.

[请让我知道问题出在哪里,我可能做错了什么。我想知道的是如何在PHP中再次使10663.28变为10352。非常感谢。注意:This is not my question and it already applied by me

php jquery equation calculation
2个回答
1
投票

我让它那样工作:

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

0
投票

我认为您将无法根据当前参数值得到想要的东西。您需要更改任何参数的值,通过更改GST的值,我得到了正确的结果;

$('#amount, #percent_val, #charge_val, #gst_val').change(function(){
  CalculatePrice()
});

$('#btnCalc').click(function(){
  CalculatePrice()
});

function CalculatePrice(){
  var $amount = $('#amount').val();
  var $percent = parseFloat($amount) * $('#percent_val').val() / 100;
  var $charge = parseFloat($percent) + $('#charge_val').val();
  var $GST = parseFloat($charge) * $('#gst_val').val() / 100;
  var $totalcharge = parseFloat($charge) + parseFloat($GST);
  var $totalAmount = parseFloat($amount) - parseFloat($totalcharge);

  $('#percent').val(parseFloat($percent).toFixed(2));
  $('#charge').val(parseFloat($charge).toFixed(2));
  $('#gst').val(parseFloat($GST).toFixed(2));
  $('#totalcharge').val(parseFloat($totalcharge).toFixed(2));
  $('#totalamount').val(parseFloat($amount - $totalcharge).toFixed(2));
}

CalculatePrice()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr>
    <td>Amount</td>
    <td></td>
    <td><input id="amount" type="number" value="10663.28"></td>
  </tr>
  <tr>
    <td>Percent</td>
    <td><input id="percent_val" type="number" value="2.5"></td>
    <td><input id="percent" readonly type="number"></td>
  </tr>
  <tr>
    <td>Charge</td>
    <td><input id="charge_val" type="number" value="5"></td>
    <td><input id="charge" readonly type="number"></td>
  </tr>
  <tr>
    <td>GST</td>
    <td><input id="gst_val" type="number" value="16.765"></td>
    <td><input id="gst" readonly type="number"></td>
  </tr>
  <tr>
    <td>Total Charge</td>
    <td></td>
    <td><input id="totalcharge" readonly type="number"></td>
  </tr>
  <tr>
    <td>Total Amount</td>
    <td></td>
    <td><input id="totalamount" readonly type="number"></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td><button id="btnCalc">Calculate</button></td>
  </tr>
<table>

尝试播放您的参数以获得所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.