Я работаю над проектом PHP для клиента, который должен получать платежи по кредитным картам.
Большинство продавцов предлагают фиксированную цену в 2,9% + 2,25 датских крон. Прямо сейчас я могу рассчитать мою плату, используя;
$price = 10;
$fee = ($price*0.029)+2.25;
// $fee = 2.54
Таким образом, на данный момент посетитель будет платить 12,54 датских крон, но, конечно, с моих добавленных «сборов-платежей» будут добавлены сборы, и мой клиент все равно должен будет заплатить 2,61366 датских крон за транзакцию, оставив 9,92634 датских крон за вывод, вместо чистых 10 датских крон.
Вставка формулы, например, в GeoGebra, это y = 1.029x + 2.25
Если это поможет? Ось Y показывает, сколько стоит посетитель, а ось X показывает, сколько можно снять.
Итак, мой вопрос: как мне сформулировать линейную функцию, которая вычисляет в обратном направлении и определяет $price
из чего должно быть снято (с PHP)?
У меня есть то, что вы хотите, так что думайте так:
тот:
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
Вы имеете в виду, что с учетом комиссии = 2,59, вам нужна базовая цена?
В этом случае вы можете сделать:
$feeMinusTax = $fee-2.25;
$originalPrice = $feeMinusTax/0.029;