verifyNotify(); if ($verify_result) {//验证成功 $doc = new DOMDocument(); if ($alipay_config['sign_type'] == 'MD5') { $doc->loadXML($_POST['notify_data']); } if ($alipay_config['sign_type'] == '0001') { $doc->loadXML($alipayNotify->decrypt($_POST['notify_data'])); } if (!empty($doc->getElementsByTagName("notify")->item(0)->nodeValue)) { //商户订单号 $out_trade_no = $doc->getElementsByTagName("out_trade_no")->item(0)->nodeValue; //支付宝交易号 $trade_no = $doc->getElementsByTagName("trade_no")->item(0)->nodeValue; //交易状态 $trade_status = $doc->getElementsByTagName("trade_status")->item(0)->nodeValue; //交易金额 $total_fee = $doc->getElementsByTagName("total_fee")->item(0)->nodeValue; if (!preg_match('/^[0-9]+$/', $out_trade_no)) { die; } //验证成功 //获取支付宝的反馈参数 /*假设: sOld_trade_status="0";表示订单未处理; sOld_trade_status="1";表示交易成功(TRADE_FINISHED/TRADE_SUCCESS); */ if (($trade_status == 'TRADE_FINISHED') || ($trade_status == 'TRADE_SUCCESS') || ($result == 'success')) { //交易成功结束 //放入订单交易完成后的数据库更新程序代码,请务必保证echo出来的信息只有success //为了保证不被重复调用,或重复执行数据库更新程序,请判断该笔交易状态是否是订单未处理状态 require_once(APP_PATH . 'app/public/common.php'); require_once(LIB_PATH . 'ApiPay.class.php'); $apiPay = new apipay($phpyun, $db, $db_config['def'], 'index'); $return = $apiPay->payAll($out_trade_no, $total_fee, 'wapalipay'); if ($return == 2) { echo "success"; } } else { echo "success"; //其他状态判断。普通即时到帐中,其他状态不用判断,直接打印success。 //调试用,写文本函数记录程序运行情况是否正常 //log_result ("这里写入想要调试的代码变量值,或其他运行的结果记录"); } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { echo "fail"; } }else{ require_once dirname(dirname(dirname(__FILE__))).'/api/aop/wap/AopClient.php'; $data = $_POST; $aop = new AopClient(); $aop->alipayrsaPublicKey = $alipaydata['sy_alipaypublickey']; $data['fund_bill_list'] = stripslashes($data['fund_bill_list']); $result = $aop->rsaCheckV1($data, $alipaydata['sy_alipaypublickey'], $alipay_config['sign_type']); if($result){ $trade_status = $data['trade_status']; if (($trade_status == 'TRADE_FINISHED') || ($trade_status == 'TRADE_SUCCESS')) { //交易成功结束 //放入订单交易完成后的数据库更新程序代码,请务必保证echo出来的信息只有success //为了保证不被重复调用,或重复执行数据库更新程序,请判断该笔交易状态是否是订单未处理状态 require_once(APP_PATH . 'app/public/common.php'); require_once(LIB_PATH . 'ApiPay.class.php'); $apiPay = new apipay($phpyun, $db, $db_config['def'], 'index'); $return = $apiPay->payAll($data['out_trade_no'], $total_fee, 'wapalipay'); if ($return == 2) { echo "success"; } } else { echo "success"; //其他状态判断。普通即时到帐中,其他状态不用判断,直接打印success。 } }else{ // file_put_contents('./log.txt', json_encode($_POST), FILE_APPEND); echo "fail"; } } ?>