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 に答える