function returnurl()
 {
     //头部的处理跟上面两个方法一样,这里不罗嗦了!
     $alipay_config = C('alipay_config');
     $alipayNotify = new \AlipayNotify($alipay_config);
     //计算得出通知验证结果
     $verify_result = $alipayNotify->verifyReturn();
     if ($verify_result) {
         //验证成功
         //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
         $out_trade_no = $_GET['out_trade_no'];
         //商户订单号
         $trade_no = $_GET['trade_no'];
         //支付宝交易号
         $trade_status = $_GET['trade_status'];
         //交易状态
         $total_fee = $_GET['total_fee'];
         //交易金额
         $notify_id = $_GET['notify_id'];
         //通知校验ID。
         $notify_time = $_GET['notify_time'];
         //通知的发送时间。
         $buyer_email = $_GET['buyer_email'];
         //买家支付宝帐号;
         $parameter = array("out_trade_no" => $out_trade_no, "trade_no" => $trade_no, "total_fee" => $total_fee, "trade_status" => $trade_status, "notify_id" => $notify_id, "notify_time" => $notify_time, "buyer_email" => $buyer_email);
         if ($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
             if (!checkorderstatus($out_trade_no)) {
                 orderhandle($parameter);
                 //进行订单处理,并传送从支付宝返回的参数;
             }
             $this->redirect(C('alipay.successpage'));
             //跳转到配置项中配置的支付成功页面;
         } else {
             echo "trade_status=" . $_GET['trade_status'];
             $this->redirect(C('alipay.errorpage'));
             //跳转到配置项中配置的支付失败页面;
         }
     } else {
         //验证失败
         //如要调试,请看alipay_notify.php页面的verifyReturn函数
         echo "支付失败!";
     }
 }
 function returnurlWap()
 {
     $alipay_config = C('alipay_config');
     $alipayNotify = new AlipayNotify($alipay_config);
     //计算得出通知验证结果
     $verify_result = $alipayNotify->verifyReturn();
     //var_dump($_GET);
     if ($verify_result) {
         //验证成功
         //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
         $out_trade_no = $_GET['out_trade_no'];
         //商户订单号
         $trade_no = $_GET['trade_no'];
         //支付宝交易号
         $trade_status = $_GET['result'];
         //交易状态
         $parameter = array("out_trade_no" => $out_trade_no, "trade_no" => $trade_no, "trade_status" => $trade_status);
         //echo "<pre>";var_dump($parameter);echo "</pre>";die();
         if ($_GET['result'] == 'success') {
             if (!checkorderstatus($out_trade_no)) {
                 orderhandle($parameter);
                 //进行订单处理,并传送从支付宝返回的参数;
                 //die();
             }
             $this->redirect(C('alipay.successpage'));
             //跳转到配置项中配置的支付成功页面;
         } else {
             //echo "trade_status=".$_GET['trade_status'];
             $this->redirect(C('alipay.errorpage'));
             //跳转到配置项中配置的支付失败页面;
         }
     } else {
         //验证失败
         //如要调试,请看alipay_notify.php页面的verifyReturn函数
         echo "支付失败!";
     }
 }
 function notifyurl()
 {
     /*                 
     同理去掉以下两句代码;                
     */
     //require_once("alipay.config.php");
     //require_once("lib/alipay_notify.class.php");
     //这里还是通过C函数来读取配置项,赋值给$alipay_config
     $alipay_config = C('alipay_config');
     //计算得出通知验证结果
     $alipayNotify = new AlipayNotify($alipay_config);
     $verify_result = $alipayNotify->verifyNotify();
     if ($verify_result) {
         //验证成功
         //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
         $out_trade_no = $_POST['out_trade_no'];
         //商户订单号
         $trade_no = $_POST['trade_no'];
         //支付宝交易号
         $trade_status = $_POST['trade_status'];
         //交易状态
         $total_fee = $_POST['total_fee'];
         //交易金额
         $notify_id = $_POST['notify_id'];
         //通知校验ID。
         $notify_time = $_POST['notify_time'];
         //通知的发送时间。格式为yyyy-MM-dd HH:mm:ss。
         $buyer_email = $_POST['buyer_email'];
         //买家支付宝帐号;
         $parameter = array("out_trade_no" => $out_trade_no, "trade_no" => $trade_no, "total_fee" => $total_fee, "trade_status" => $trade_status, "notify_id" => $notify_id, "notify_time" => $notify_time, "buyer_email" => $buyer_email);
         if ($_POST['trade_status'] == 'TRADE_FINISHED') {
             //
         } else {
             if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
                 if (!checkorderstatus($out_trade_no)) {
                     orderhandle($parameter);
                     //进行订单处理,并传送从支付宝返回的参数;
                 }
             }
         }
         echo "success";
         //请不要修改或删除
     } else {
         //验证失败
         echo "fail";
     }
 }
 function notifyurl()
 {
     /*
      同理去掉以下两句代码;
     */
     //require_once("alipay.config.php");
     //require_once("lib/alipay_notify.class.php");
     //这里还是通过C函数来读取配置项,赋值给$alipay_config
     $alipay_config = C('alipay_config');
     //计算得出通知验证结果
     $alipayNotify = new AlipayNotify($alipay_config);
     $verify_result = $alipayNotify->verifyNotify();
     if ($verify_result) {
         //验证成功
         //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
         $out_trade_no = $_POST['out_trade_no'];
         //商户订单号
         $trade_no = $_POST['trade_no'];
         //支付宝交易号
         $trade_status = $_POST['trade_status'];
         //交易状态
         $total_fee = $_POST['total_fee'];
         //交易金额
         $notify_id = $_POST['notify_id'];
         //通知校验ID。
         $notify_time = $_POST['notify_time'];
         //通知的发送时间。格式为yyyy-MM-dd HH:mm:ss。
         $buyer_email = $_POST['buyer_email'];
         //买家支付宝帐号;
         $parameter = array("out_trade_no" => $out_trade_no, "trade_no" => $trade_no, "total_fee" => $total_fee, "trade_status" => $trade_status, "notify_id" => $notify_id, "notify_time" => $notify_time, "buyer_email" => $buyer_email);
         if ($_POST['trade_status'] == 'TRADE_FINISHED') {
             //判断该笔订单是否在商户网站中已经做过处理
             //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
             //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
             //如果有做过处理,不执行商户的业务程序
             //注意:
             //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
             //调试用,写文本函数记录程序运行情况是否正常
             //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
         } else {
             if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
                 //判断该笔订单是否在商户网站中已经做过处理
                 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
                 //如果有做过处理,不执行商户的业务程序
                 //注意:
                 //付款完成后,支付宝系统发送该交易状态通知
                 //调试用,写文本函数记录程序运行情况是否正常
                 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
                 if (!checkorderstatus($out_trade_no)) {
                     orderhandle($parameter);
                     //进行订单处理,并传送从支付宝返回的参数;
                 }
             }
         }
         echo "success";
         //请不要修改或删除
     } else {
         //验证失败
         echo "fail";
     }
 }
Exemple #5
0
 function returnurl()
 {
     //头部的处理跟上面两个方法一样,这里不罗嗦了!
     $alipay_config = C('alipay_config');
     $system = session("system");
     $runUrl = session("runUrl");
     $alipayNotify = new \AlipayNotify($alipay_config);
     //计算得出通知验证结果
     $verify_result = $alipayNotify->verifyReturn();
     if ($verify_result) {
         //验证成功
         //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
         $out_trade_no = $_GET['out_trade_no'];
         //商户订单号
         $trade_no = $_GET['trade_no'];
         //支付宝交易号
         $trade_status = $_GET['trade_status'];
         //交易状态
         $total_fee = $_GET['total_fee'];
         //交易金额
         $notify_id = $_GET['notify_id'];
         //通知校验ID。
         $notify_time = $_GET['notify_time'];
         //通知的发送时间。
         $buyer_email = $_GET['buyer_email'];
         //买家支付宝帐号;
         $parameter = array("out_trade_no" => $out_trade_no, "trade_no" => $trade_no, "total_fee" => $total_fee, "trade_status" => $trade_status, "notify_id" => $notify_id, "notify_time" => $notify_time, "buyer_email" => $buyer_email);
         if ($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
             if (!checkorderstatus($out_trade_no)) {
                 orderhandle($parameter);
                 //进行订单处理,并传送从支付宝返回的参数;
             }
             $this->success("恭喜您支付宝支付成功,订单号为【{$out_trade_no}】,我们将在一个工作日内与您联系!谢谢!", "/{$runUrl}", 10);
             //跳转到配置项中配置的支付成功页面;
         } else {
             echo "trade_status=" . $_GET['trade_status'];
             $this->error("抱歉支付宝支付失败!若有疑问请拨打,首页下方的联系电话,谢谢合作!1", "{$runUrl}", 6);
             //跳转到配置项中配置的支付失败页面;
         }
     } else {
         //验证失败
         //如要调试,请看alipay_notify.php页面的verifyReturn函数
         alipayFaild($out_trade_no);
         $this->error("抱歉支付宝支付失败!若有疑问请拨打,首页下方的联系电话,谢谢合作!2", "{$runUrl}", 6);
         //跳转到配置项中配置的支付失败页面;
     }
 }