getRequest()->getParam("user_id"); $pay_channel = Yii::app()->getRequest()->getParam("pay_channel"); $order_id = Yii::app()->getRequest()->getParam("order_id"); if(!$user_id || !$pay_channel || !$order_id || !CommonFn::isMongoId($order_id)){ CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal')); } $user_obj = RUser::get(new MongoId($user_id)); $order = RechargeOrder::get(new MongoId($order_id)); if(!$order || !$user_obj){ CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal')); } if($order && (string)$order->user != $user_id){ CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal')); } if($order->charge_id){ CommonFn::requestAjax(false,'此订单已支付过',array('have_pay'=>1)); } $str = '壹管家充值卡'; $amount = ceil($order->price*1000)/10; $result = Service::factory('PayService')->Pay($pay_channel,$amount,(string)$order->_id,$str,$str,$user_obj->wx_pub_openid); if($result === false){ CommonFn::requestAjax(false,'支付遇到点问题了,请稍候再试'); }else{ // 支付成功后 用户余额/代金券 增加 暂时充值卡发放的代金券没有过期时间 $recharge = Recharge::get(new MongoId($order->recharge)); $amount = $recharge->denomination; if($recharge->cash_back){ $amount += $recharge->cash_back; } if(isset($recharge->coupons) && is_array($recharge->coupons) && count($recharge->coupons)){ foreach ($recharge->coupons as $coupon_id) { //$start_time = time(); //$end_time = strtotime(date('Y-m-d',$start_time+1209600)); Service::factory('CouponService')->giveCoupon($user_obj->_id, $coupon_id); } } $user_obj->balance = $user_obj->balance+$amount; $user_obj->save(); $log = new RechargeLog(); $log->time = time(); $log->user = $user_obj->_id; $log->recharge = $recharge->_id; $log->save(true); $balance_log = new BalanceLog(); $balance_log->time = time(); $balance_log->user = $user_obj->_id; $balance_log->memo = '购买充值卡充值'; $balance_log->type = 'recharge'; $balance_log->amout = $amount; $balance_log->save(true); CommonFn::requestAjax(true,'success',json_decode($result),200,array()); } } //充值卡订单创建 public function actionAddRechargeorder(){ $user_id = Yii::app()->getRequest()->getParam("user_id"); $recharge_id = Yii::app()->getRequest()->getParam("recharge_id"); if(!$user_id||!$recharge_id){ CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal')); } $user_obj = CommonFn::apigetObJ($user_id,'ZUser',CommonFn::getMessage('user','id_not_exist'),array(),201); $recharge = Recharge::get(new MongoId($recharge_id)); if(!$recharge){ CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal')); } $order = new RechargeOrder(); $order->time = time(); $order->price = $recharge->denomination; $order->recharge = $recharge->_id; $order->user = $user_obj->_id; if($order->save()){ $data = ROrder::model()->parseRow($order); CommonFn::requestAjax(true,CommonFn::getMessage('message','operation_success'),$data); }else{ CommonFn::requestAjax(true,'未知错误,请稍候再试',array()); } } //获取充值卡列表 public function actionRechargeList(){ $criteria = new EMongoCriteria(); $criteria->status('==', 1); $criteria->sort('order', EMongoCriteria::SORT_DESC); $cursor = Recharge::model()->findAll($criteria); $rows = self::getRows($cursor); $model = new Recharge(); $res = $model->parse($rows); CommonFn::requestAjax(true,CommonFn::getMessage('message','operation_success'),$res); } }