middleware('auth'); } private function getpayOrder(Order $order, $type) { $payOrder = Payment::create([ 'order_id' => $order->id, 'type' => $type, 'amount' => $order->total - $order->score, ]); return $payOrder; } public function lesson(Request $request, $orderid) { $order = Order::where('orderid', $orderid)->firstOrFail(); $coupon = ''; if ($request->has('coupon_id')) { $coupon = CouponUserLog::find($request->coupon_id); } // $coupon_list = CouponUserLog::with('info')->whereHas('info', function ($query) { // $query->where('type', 'lesson') // ->where('start_at', '<=', date('Y-m-d H:i:s', time())) // ->where('end_at', '>=', date('Y-m-d H:i:s', time())); // })->where('user_id', Auth::id())->where('status', 0)->get(); // $coupon = $coupon_list->sortByDesc(function ($coupon, $key) { // return $coupon->info->bouns; // })->first(); $apply_lesson_price = \Params::get('apply_lesson_price'); return view('pay.lesson', compact('order', 'coupon', 'apply_lesson_price')); } public function order(Request $request, $orderid) { $order = Order::where('orderid', $orderid)->firstOrFail(); return view('pay.order', compact('order')); } public function wechatnew(Request $request, $orderid) { $order = Order::where('orderid', $orderid)->firstOrFail(); $openid = $order->user->openid; if ($request->has('coupon') && $request->coupon) { $coupon = CouponUserLog::find($request->coupon); $order->score = $coupon->info->bouns; $order->save(); if ($order->couponuse && $order->couponuse->coupon_id != $coupon->id) { $order->couponuse()->delete(); } if ($order->couponuse) { if ($order->couponuse->coupon_id != $coupon->id) { $order->couponuse()->delete(); $order->couponuse()->save(new CouponUse(['order_id' => $order->id, 'coupon_id' => $coupon->id])); } else { $order->couponuse()->update(['updated_at' => time()]); } } else { $order->couponuse()->save(new CouponUse(['order_id' => $order->id, 'coupon_id' => $coupon->id])); } } else { $order->score = 0; $order->save(); $order->couponuse()->delete(); } $amount = $order->amount - $order->score; $payOrder = $this->getpayOrder($order, 'WECHAT'); if ($amount != $payOrder->amount) { $payOrder->amount = $amount; $payOrder->save(); } $app = app('wechat.payment'); $amount = $payOrder->amount; $result = $app->order->unify([ 'body' => '商城订单', 'out_trade_no' => $payOrder->trade_no, 'total_fee' => $amount * 100, 'notify_url' => route('notify.payment'), 'trade_type' => 'JSAPI', 'openid' => $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']); } } public function ok(Request $request) { return view('pay.ok'); // $user = Auth::user(); // $openid = $user->openid; // if (empty($openid) && $user->main_id > 0) { // $openid = $user->mainuser->openid; // } // $app = app('wechat.official_account'); // $wxuser = $app->user->get($openid); // if ($wxuser->subscribe == 0) { // return view('pay.subscribe'); //强制关注公众号 // } else { // return view('pay.ok'); // } } }