2015-05-07 2 views
-2

Я работаю над проектом PHP для клиента, который должен получать платежи по кредитным картам.PHP: Как создать линейную функцию, рассчитывая плату за кредитную карту?

Большинство продавцов предлагает фиксированную цену 2.9% + 2.25 DKK. Прямо сейчас, я могу рассчитать мой гонорар;

$price = 10; 
$fee = ($price*0.029)+2.25; 
// $fee = 2.54 

Так, как сейчас, посетитель будет платить 12,54 DKK, но, конечно, будут добавлены сборы в мой вставленный «пользователь-Pays-платежей», и мой клиент все равно придется заплатить 2.61366 DKK за транзакция, оставив 9.92634 DKK для вывода, вместо чистого 10 DKK.

Вставка формулы, например. GeoGebra, это y = 1.029x + 2.25, если это какая-то помощь? Ось Y показывает, сколько посетителей заряжено, а ось X показывает, сколько выкачивается.

Итак, мой вопрос: как сформулировать линейную функцию, которая рассчитывает назад и определяет $price из того, что должно быть выведено (с PHP)?

+0

Это основной алгебры. у вас есть 'y = штука с x'. отмените его и получите 'x = материал с y'. –

+0

@MarcB Я обновил вопрос, когда вы написали свой комментарий, и я знаю линейную алгебру formular: y = 1.029x + 2.25', но я не уверен, как ее отменить? И как вставить его в PHP-скрипт? –

+0

как я и сказал. это основная алгебра. напишите на бумаге и решите для X вместо Y. –

ответ

1

Я получил то, что вы хотите, так что думать таким образом:

  1. у вас есть оригинальная цена
  2. вы хотите, чтобы вычислить окончательный transferAmount

что:

transferAmount = originalPrice + fee 

, но плата здесь зависит от суммы перевода

fee = transferAmount * 0.029 + 2.25 

Теперь решить:

transferAmount = originalPrice + transferAmount * 0.029 + 2.25 
transferAmount*(1-0.029) = originalPrice + 2.25 
transferAmount = (originalPrice + 2.25)/(1-0.029) 

в PHP:

$price = 10; 
$total = ($price + 2.25)/(1.0 - 0.029); // 12.615859938208033 
$fee = $total - $price; // 2.6158599382080325 

теперь вы можете проверить:

12.615... * 0.029 + 2.25 = 2.615... 

т.е. коммерсант будет принимать 2.615... как гонорар и результат является 10

+0

Это именно тот код, который я назвал выше. Ваш код не имеет в виду, что будут добавлены сборы в дополнение к '$ totalprice' –

+0

@JonathanBredoChristensen, что добавляется сборы? как они рассчитываются? –

+0

Как описано в моем вопросе, они вычитаются из переданной суммы, оставляя немного менее выкатной. Плата составляет 2,9% + 2.25 –

0

Вы имеете в виду, что данная плата = 2.59, вы хотите получить базовую цену?

В этом случае, вы можете сделать:

$feeMinusTax = $fee-2.25; 
$originalPrice = $feeMinusTax/0.029;