Нужна помощь с отправкой переменных в функцию PHP - PullRequest
1 голос
/ 11 августа 2011

Я работаю в интернет-магазине и мне нужна помощь, чтобы получить работающий плагин iDeal (способ оплаты из Нидерландов).

Мне нужно отправить сумму (цену) предметов, за которые нужно заплатить. Я получаю количество предметов с предыдущей страницы, например

$qty = $_POST['qty'];

и создайте переменную общей цены следующим образом (2999 - это цена, она должна быть в центах, чтобы цена составляла 29,99)

$totaalprijs = 2999 * $qty;
$iAmount = $totaalprijs;

посетитель выбирает свой банк и инициирует платеж, нажав на кнопку подтверждения. тогда это случается

$oIdeal->setIdealAmount ( $iAmount );

Она отправляет переменную этой функции в другом php-файле, проверяет, является ли значение числовым, отличным от 0, и отправляет его в метод оплаты через другую функцию.

public function setIdealAmount ( $intIdealAmount ) {

  # Is this a valid ideal amount?
  if ( is_numeric ( $intIdealAmount ) && $intIdealAmount > 0 ) {
    $this->idealAmount = $intIdealAmount;    
  }
  else {
    throw new Exception( 'Invalid ideal amount, please check.' );   
  }
   return $this;

}

А вот проблема в том, что при отправке через функцию он всегда возвращает 0 кроме случаев, когда я, например, делаю это:

$iAmount = 2999;

Я хочу, чтобы итоговая цена предметов составляла цену * кол-во, но она возвращает $ только тогда, когда я объявляю свою переменную $ iAmount, как указано выше.

Я получаю следующее сообщение об ошибке:

Fatal error: Uncaught exception 'Exception' with message 'Invalid ideal amount, please check.' in /home/spraytanning-express.nl/www/TargetPayIdeal.class.php:154 Stack trace: #0 /home/spraytanning-express.nl/www/betalen.php(116): TargetPayIdeal->setIdealAmount(0) #1 {main} thrown in /home/spraytanning-express.nl/www/TargetPayIdeal.class.php on line 154

Надеюсь, некоторые из вас помогут мне ... И, кстати, извините за мой плохой английский:)

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 12 августа 2011

Если вы этого еще не сделали, вам может потребоваться инициализировать переменную $ idealAmount, прежде чем ссылаться на нее с помощью объекта $ this->. Также вы можете проверить, что $ _POST ['qty'] является числовым.

0 голосов
/ 12 августа 2011

Попробуйте разделить вашу проверку и явно выдать исключения, основанные на неудачной проверке:

public function setIdealAmount ( $intIdealAmount ) {
    var_dump($intIdealAmount); // see what the value is
    if (!is_numeric($intIdealAmount)) {
           throw new Exception( 'ideal amount not numeric' );   
    }
    if ($intIdealAmount <= 0) {
        throw new Exception('ideal amount <= 0');
    }
    etc...
}

Сейчас ваше исключение несколько полезно, чтобы показать, что что-то не так, но бесполезно, чтобы точно объяснить, почему что-то не так.

...