1

我在网上商店工作,需要帮​​助才能使 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;

我希望商品的总价格为 price * qty 但仅当我像上面那样声明 $iAmount 变量时它才返回 $this。

我得到的错误信息是这样的:

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

希望你们中的一些人可以帮助我......顺便说一句,对不起我的英语不好:)

提前致谢!

4

2 回答 2

0

尝试拆分检查并根据检查失败显式抛出异常:

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...
}

现在,您的异常对于显示某些错误有点有用,但对于准确解释为什么会出现错误是无用的。

于 2011-08-11T20:08:05.330 回答
0

如果您还没有这样做,您可能需要在使用 $this-> 对象引用它之前初始化 $idealAmount 变量。此外,您可能需要检查 $_POST['qty'] 是否为数字。

于 2011-08-11T20:10:09.913 回答