PayPal IPN在live中返回无效,但在sandbox中返回true

PayPal IPN在live中返回无效,但在sandbox中返回true,paypal,paypal-ipn,Paypal,Paypal Ipn,我使用贝宝平行支付 使用此代码,$ipnMessage->validate返回false,但在sandbox中返回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 "); }

我使用贝宝平行支付

使用此代码,$ipnMessage->validate返回false,但在sandbox中返回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]。值为“已完成”的状态是确保事务已完成且合法的安全方法吗