public function income($uid = 0) { $moneyModel = new \Common\Model\UserMoneyModel(); if (IS_POST) { $money = I('money', 0, 'float'); $money > 0 or $this->error('请输入正确的金额!'); $remark = I('remark'); $ret = $moneyModel->in(I('uid'), $money, $remark); $ret ? $this->success('更新金额成功!') : $this->error($moneyModel->getError()); return; } $money = $moneyModel->get($uid, true) or $this->error($moneyModel->getError()); $this->assign('money', $money); $user = M('user')->find($uid) or $this->error('找不到此用户信息!'); $this->assign('user', $user); $this->meta_title = '用户充值'; $this->display(); }
/** * 确认充值成功,对业务进行处理(注意高并发及重复请求) * * @param ing $pay_id 支付操作编号 */ protected function _paySuccess($pay_id) { // 验证是否重复操作 $payRow = M('user_money_pay_alipay')->find($pay_id); if (!$payRow) { return '此交易记录不存在!'; } if ($payRow['is_action'] > 0) { return true; } if (bccomp($_REQUEST['total_fee'], $payRow['money'], 2) != 0) { return '支付金额与记录不符!'; } // 抢占处理 if (!M('user_money_pay_alipay')->where(['id' => $pay_id, 'is_action' => $payRow['is_action']])->setField('is_action', 1)) { return true; } // 增加用户钱包金额 $moneyModel = new \Common\Model\UserMoneyModel(); $ret = $moneyModel->in($payRow['uid'], $payRow['money'], '支付宝充值', $_REQUEST['trade_no']); return $ret ?: $moneyModel->getError(); }