Exemple #1
0
 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));
 }