public function actionCompany() { try { $list = Yii::app()->user->orderlist; $date = Yii::app()->user->orderdate; $months = Yii::app()->user->ordermonths; } catch (Exception $e) { echo 'fail'; die; } if (Yii::app()->user->isGuest) { $userId = Yii::app()->session['user']['id']; } else { $userId = Yii::app()->user->id; } $wechat = Yii::app()->params['partner']['wechat']; $jsapi = new WxJsPayHelper(); $openid = $jsapi->GetOpenid(); $this->bodyCss = 'orderDetail'; $totalPrice = 0; foreach ($list as &$value) { $product = CompanyProduct::model()->findByAttributes(array('id' => $value['id'])); $value['name'] = $product->name; $value['price'] = $product->price; $value['type'] = $product->type; $totalPrice = $totalPrice + $value['price'] * $value['num']; } $order = new COrder(); $newOrder = $order->create(array('userId' => $userId, 'type' => 2, 'price' => $totalPrice, 'orderTime' => date('YmdHis'), 'hubId' => 1)); $orderId = $newOrder['data']['orderId']; $endDate = date('Y-m-d', strtotime($date) + (date('t', strtotime($date)) - 1) * $months * 60 * 60 * 24); foreach ($list as $v) { $companyProduct = $order->createCompanyProduct(array('cproductId' => $v['id'], 'startDate' => $date, 'endDate' => $endDate, 'orderId' => $orderId, 'num' => $v['num'])); Coding::makeCode(array('userId' => $userId, 'type' => $v['type'], 'startDate' => $date, 'endDate' => $endDate, 'times' => $v['num'], 'ordercompanyProductId' => $companyProduct['data']['id'])); } $input = new WxPayUnifiedOrder(); $input->SetBody('Company product'); // $input->SetAttach(date('Ymd',$date)); $input->SetOut_trade_no((string) $orderId); $input->SetTotal_fee($totalPrice / 100); $input->SetTime_start(date('YmdHis')); $input->SetTime_expire(Assist::getOrderExpireTime(time())); $input->SetProduct_id(1); $input->SetNotify_url('http://hubapp.livenaked.com' . $wechat['payment']['notify']); $input->SetTrade_type('JSAPI'); $input->SetOpenid($openid); Yii::log(print_r($input->values, 1), CLogger::LEVEL_ERROR, 'input'); $bill = WxPayApi::unifiedOrder($input); $jsApiParameters = $jsapi->GetJsApiParameters($bill); $this->render('company', array('list' => $list, 'date' => $date, 'months' => $months, 'totalPrice' => $totalPrice, 'jsparams' => $jsApiParameters)); }