frontend\controllers\PaymentController::actionAlipayOrderReturn PHP Method

actionAlipayOrderReturn() public method

    public function actionAlipayOrderReturn()
    {
        require_once Yii::getAlias('@vendor') . "/payment/alipay/alipay.config.php";
        require_once Yii::getAlias('@vendor') . "/payment/alipay/lib/alipay_notify.class.php";
        $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'];
            $model = Order::findOne(['order_sn' => $out_trade_no]);
            if ($model) {
                if ($trade_status === 'TRADE_SUCCESS' || $trade_status === 'TRADE_FINISHED') {
                    if ($model->pay()) {
                        $this->_sendMsg($model);
                        Yii::info("订单支付成功!订单号:{$out_trade_no}");
                    } else {
                        Yii::error("订单支付失败!订单号:{$out_trade_no}");
                        Yii::$app->session->setFlash('danger', '订单支付失败!');
                    }
                } elseif ($trade_status === 'TRADE_CLOSED') {
                    Yii::$app->session->setFlash('warning', '订单未支付!');
                }
            }
        } else {
            throw new ForbiddenHttpException('参数非法。');
        }
        return $this->redirect(['/order/detail', 'order' => $model->order_sn]);
    }