where(array('pay_no'=>$orderId,'status'=>2))->find(); if( $order ) { Db::startTrans(); //更新订单状态 $rs = Db::name('pay_order')->where(['id'=>$order['id']])->update(['status'=>1]); if(!$rs){ Db::rollback(); filePut('[wallet][paySucc] pay_order update fail'.$orderId); abort(500,lang('订单更新失败')); } //先充值 $user_info = Db::name('wallet')->where('user_id',$args['user_id'])->lock(true)->find(); if($user_info['vip_endtime'] < time()){ //过期了 $vip_endtime = time() + (intval($args['days']) * 86400); }else{ //追加vip $vip_endtime = $user_info['vip_endtime'] + (intval($args['days']) * 86400); } $result = Db::name('wallet')->where('user_id',$args['user_id'])->update(['vip_endtime'=>$vip_endtime]); if($result === false) { Db::rollback(); filePut('[wallet][paySucc]网银充值入账更新vip时间失败 recharge money fail'.$orderId.$result['msg']); abort(500,lang('网银充值入账 model wallet recharge money fail')); } Db::commit(); //再扣款 /* Db::startTrans(); //需要更新某个支付表 if(isset($args['payids']) && $args['payids']) { logic('Cashier')->paySuccess($args,true); filePut('[wallet][paySucc] end success '.$orderId); } Db::commit();*/ return true; }else{ filePut('[wallet][paySucc]在线支付订单有误 '.$orderId); abort(500,lang('model wallet fail')); return false; } } }