chengkun
2025-05-20 4c1f0f659384d71ce28be1fc0343e56e75568fe1
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
<?php
 
 
error_reporting(0);
require_once 'AopClient.php';
require_once(dirname(dirname(dirname(__FILE__)))."/data/api/alipay/alipay_aop.php");
require_once(dirname(dirname(dirname(__FILE__)))."/global.php");
 
$aop = new AopClient();
$aop->alipayrsaPublicKey = $alipaydata['sy_publicKey'];
$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->rsaCheckV2($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";
}
?>