我在验证电子商务网站的 WorldPay 回调时遇到问题。
根据文档, WorldPay 应该发布一个名为“transStatus”的参数,其值为“Y”以表示成功交易。
这看起来很简单,所以我编写了一个简单的验证函数来查找这个值:
private function validateRequest() {
if ($_POST['transStatus'] == "Y"){
return true;
} else {
throw new Exception("Transaction failed");
die();
}
}
}
当回调页面运行时,这个函数会被调用,尝试如下:
try {$this->validateRequest()}
catch (Exception $e) {
mail("email@address.com", $e->getMessage(), $e->getTraceAsString());
throw new Exception("Could not validate payment.")
die();
}
不幸的是,当我测试这个 WorldPay 成功处理付款但我的其余代码未完成订单时。我检查了我的日志文件,但看不到任何异常或错误。
从这里采取的最佳方法是什么?我应该如何着手解决这个问题?