middleware('auth'); View::share('nav', 4); } // 升级vip public function vip(Request $request) { if (Auth::user()->identity->identity_id > 0) { // return redirect()->route('user.index'); } return view('upgrade.vip'); } //升级代理商 public function agent(Request $request) { if (!Auth::user()->username) { return redirect()->route('login'); } if (Auth::user()->identity->identity_id > 1) { return redirect()->route('Agent.login'); } return view('upgrade.agent'); } public function wechat(Request $request) { $user = Auth::user(); $type = $request->type ?? 'vip'; $upgradeOrder = UpgradePayment::where(['user_id' => $user->id, 'type' => $type, 'state' => 'SUCCESS'])->first(); if ($upgradeOrder) { $url = route('user.index'); if ($type == 'agent') { $url = route('Agent.login'); } return $this->error('您已经升级成功', $url); } $upgradeOrder = $this->getpayOrder($type); $app = app('wechat.payment'); $amount = $upgradeOrder->amount; if (config('pick.DEBUG')) { $amount = 0.01; } $result = $app->order->unify([ 'body' => $type == 'vip' ? '开通会员' : '开通代理商', 'out_trade_no' => $upgradeOrder->trade_no, 'total_fee' => $amount * 100, 'notify_url' => route('notify.upgrade'), 'trade_type' => 'JSAPI', 'openid' => $user->openid, ]); if ($result['return_code'] == 'SUCCESS' && isset($result['prepay_id'])) { $json = $app->jssdk->bridgeConfig($result['prepay_id']); return $this->success($json); } else { return $this->error($result['return_msg'] . ($result['err_code_des'] ?? '')); } } private function getpayOrder($type) { $amount = 399; if ($type == 'vip') { $amount = config('vip_price'); } if ($type == 'agent') { $amount = config('agent_price'); } $upgradeOrder = UpgradePayment::create([ 'user_id' => Auth::id(), 'type' => $type, 'pay_type' => 'WECHAT', 'amount' => $amount, 'total' => $amount, ]); return $upgradeOrder; } public function hasAgent() { return view('upgrade.hasagent'); } }