chengkun
2025-05-22 1a8aea45ebb1582c9f65d9e8dcd520002f83ae12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
 
 
/////////////////////////////////////
error_reporting(0);
require_once("class/alipay_notify.php");
require_once("alipay_config.php");
require_once(dirname(dirname(dirname(__FILE__)))."/global.php");
 
if($sign_type == 'MD5'){
 
    $alipay = new alipay_notify($partner,$security_code,$sign_type,$_input_charset,$transport);    //构造通知函数信息
    $verify_result = $alipay->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";
    }
 
}
?>