frontend\controllers\PaymentController::actionWxpay PHP Method

actionWxpay() public method

public actionWxpay ( $order )
    public function actionWxpay($order)
    {
        $model = Order::findOne(['order_sn' => $order, 'status' => Order::STATUS_UNPAID]);
        if (!$model) {
            throw new BadRequestHttpException('参数错误!');
        }
        require_once Yii::getAlias('@vendor') . "/payment/wxpay/lib/WxPay.Api.php";
        require_once Yii::getAlias('@vendor') . "/payment/wxpay/lib/WxPay.JsApiPay.php";
        try {
            $tools = new \JsApiPay();
            $openId = $tools->GetOpenid();
            $input = new \WxPayUnifiedOrder();
            $input->SetBody('笑e购(xiaoego.com)订单,' . $model->description);
            $input->SetOut_trade_no($model->order_sn);
            $input->SetTotal_fee(bcmul($model->real_fee, 100));
            $input->SetTime_start(date("YmdHis", $model->created_at));
            $input->SetTime_expire(date("YmdHis", $model->timeout));
            $input->SetNotify_url(Url::to(['/payment/wxpay-order-notify'], true));
            $input->SetTrade_type("JSAPI");
            $input->SetOpenid($openId);
            $orderform = \WxPayApi::unifiedOrder($input);
            $jsApiParameters = $tools->GetJsApiParameters($orderform);
        } catch (\Exception $e) {
            Yii::error("用户请求支付订单失败!订单号:{$order},支付平台:wxpay");
            throw new BadRequestHttpException($e->getMessage());
        }
        Yii::info("用户请求支付订单成功!订单号:{$order},支付平台:wxpay");
        return $this->renderPartial('wxpay', ['model' => $model, 'jsApiParameters' => $jsApiParameters]);
    }