e コマース Web サイトの WorldPay からのコールバックの検証に問題があります。
ドキュメントによると、 WorldPay は、トランザクションが成功した場合、値が「Y」の「transStatus」という名前のパラメーターを POST する必要があります。
これは簡単に思えるので、この値を探す簡単な検証関数を作成しました。
private function validateRequest() {
if ($_POST['transStatus'] == "Y"){
return true;
} else {
throw new Exception("Transaction failed");
die();
}
}
}
コールバック ページが実行されると、この関数は次のような try で呼び出されます。
try {$this->validateRequest()}
catch (Exception $e) {
mail("email@address.com", $e->getMessage(), $e->getTraceAsString());
throw new Exception("Could not validate payment.")
die();
}
残念ながら、この WorldPay をテストすると、支払いは正常に処理されますが、コードの残りの部分では注文が完了しません。ログ ファイルを確認しましたが、例外やエラーを確認できません。
ここから取るべき最善のアプローチは何ですか?この問題を解決するにはどうすればよいですか?