notify_verify(); //计算得出通知验证结果 if($verify_result) { if(!preg_match('/^[0-9]+$/', $_POST['out_trade_no'])){ die; } //验证成功 //获取支付宝的反馈参数 $dingdan = $_POST['out_trade_no']; //获取支付宝传递过来的订单号 $total_fee = $_POST['total_fee']; //获取支付宝传递过来的总价格 /*假设: sOld_trade_status="0";表示订单未处理; sOld_trade_status="1";表示交易成功(TRADE_FINISHED/TRADE_SUCCESS); */ if($_POST['trade_status'] == 'TRADE_FINISHED' ||$_POST['trade_status'] == 'TRADE_SUCCESS') { //交易成功结束 //放入订单交易完成后的数据库更新程序代码,请务必保证echo出来的信息只有success //为了保证不被重复调用,或重复执行数据库更新程序,请判断该笔交易状态是否是订单未处理状态 //if($sOld_trade_status < 1) { //根据订单号更新订单,把订单处理成交易成功 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($dingdan,$total_fee,'alipay'); if ($return==2){ echo "success"; } //} //调试用,写文本函数记录程序运行情况是否正常 //log_result("这里写入想要调试的代码变量值,或其他运行的结果记录"); } else { echo "success"; //其他状态判断。普通即时到帐中,其他状态不用判断,直接打印success。 //调试用,写文本函数记录程序运行情况是否正常 //log_result ("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }else { //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //log_result ("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }else{ require_once dirname(dirname(dirname(__FILE__))).'/api/aop/AopClient.php'; $aop = new AopClient(); $aop->alipayrsaPublicKey = $alipaydata['sy_alipaypublickey']; $aop->signType = 'RSA2'; $requestParamsArr = $_POST; //除去sign、sign_type两个参数外,凡是通知返回回来的参数皆是待验签的参数。 // unset($requestParamsArr['sign_type']); $requestParamsArr['fund_bill_list'] = stripslashes($_POST['fund_bill_list']); //验证RSA2格式签名 $verify_result = $aop->rsaCheckV1($requestParamsArr, $aop->alipayrsaPublicKey,$aop->signType); if($verify_result) { if(!preg_match('/^[0-9]+$/', $_POST['out_trade_no'])){ die; } //验证成功 //获取支付宝的反馈参数 $dingdan = $_POST['out_trade_no']; //获取支付宝传递过来的订单号 $total_amount = $_POST['total_amount']; //获取支付宝传递过来的总价格 if($_POST['trade_status'] == 'TRADE_FINISHED' ||$_POST['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($dingdan,$total_amount,'alipay'); if ($return==2){ echo "success"; } } else { echo "success"; //其他状态判断。普通即时到帐中,其他状态不用判断,直接打印success。 } }else { //验证失败 echo "fail"; } } ?>