我正在使用PayPal并行付款。
使用此代码,$ ipnMessage-> validate()返回false,但在沙箱中返回true:
if($ipnMessage->validate()) {
error_log("Success: Got valid IPN data");
// In sandbox returns true, in 'live' returns false
} else {
error_log("ERROR: Invalid IPN ");
}
我的解决方案是:
foreach($ipnMessage->getRawData() as $key => $value) {
error_log("IPN: $key => $value\n", 3, "error_log.rtf");
if ($key == "transaction[0].status") $completed = $value;
}
if($completed == 'Completed') {
//error_log("Success: Got valid IPN data");
// Always returns true
} else {
error_log("ERROR: Invalid IPN ");
}
问题是:使用值已完成检查事务[0] .status 是确保交易完成且合法的安全方式吗?