/** * 针对return_url验证消息是否是支付宝发出的合法消息 * @return 验证结果 */ public function verifyReturn() { if (empty($_GET)) { //判断POST来的数组是否为空 return false; } else { //生成签名结果 $isSign = $this->getSignVeryfy($_GET, $_GET["sign"]); //获取支付宝远程服务器ATN结果(验证是否是支付宝发来的消息) $responseTxt = 'false'; if (!empty($_GET["notify_id"])) { $responseTxt = $this->getResponse($_GET["notify_id"]); } //写日志记录 if ($isSign) { $isSignStr = 'true'; } else { $isSignStr = 'false'; } $log_text = "responseTxt=" . $responseTxt . "\n return_url_log:isSign=" . $isSignStr . ","; $log_text = $log_text . Alipay::createLinkString($_GET); Alipay::logResult($log_text); //验证 //$responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关 //isSign的结果不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关 if (preg_match("/true\$/i", $responseTxt) && $isSign) { return true; } else { return false; } } }