info($str, $arr); } public function index(Request $request) { $this->setViewPath('', 'mindex'); $data = [ 'title' => '立即下单', ]; return $this->display($data); } public function orderPost(Request $request) { return $this->apiOrderPost($request); // if ($request->input('app_id')) { // return $this->apiOrderPost($request); // } else { // return $this->localOrderPost($request); // } } /** * 检查订单 * @param Request $request * @return mixed */ public function orderCheck(Request $request){ $order_sn = $request->input('order_sn'); $out_trade_sn = $request->input('out_trade_sn'); $key = $request->input('app_id'); $time=$request->input('time'); if (empty($time) || $time < time() - 60) { $data = [ 'error' => 1, 'msg' => '请求错误', 'order' => [], 'backurl' => '', ]; return response()->json($data); } Log::channel('pay_order')->info('merch查询订单', $request->input()); if ((!$order_sn && empty($out_trade_sn)) || empty($key)) { $data = [ 'error' => 1, 'msg' => '订单不存在', 'order'=>[], 'backurl' => '', ]; }else{ // $merchent=Merchant::where('app_key',$key)->first(["token"]); $merchent = get_merchant($key);//取得商户 if(empty($merchent)){ $data = [ 'error' => 2, 'msg' => '商户不存在', 'order'=>[], 'backurl' => '', ]; return response()->json($data); } $params=$request->input(); ksort($params); $secret=''; $paramsign=$params['sign']??""; unset($params['sign']); foreach ($params as $k => $d) { if (!empty($d)) { $secret .= $k . '=' . $d . '&'; } } $token=$merchent['token']; $secret .= 'token=' . $token; $sign = md5(strtolower(trim($secret, '&'))); if($sign!=$paramsign){ $data = [ 'error' => 3, 'msg' => '签名不正确', 'order'=>[], 'backurl' => '', ]; return response()->json($data); } //查询这个订单是否已经支付 if (!empty($order_sn)) { $order = Order::where('order_sn', $order_sn)->first(); } else { $order = Order::where('out_trade_sn', $out_trade_sn)->first(); } if (is_null($order['order_sn'])) { $data = [ 'error' => 1, 'msg' => '订单不存在', 'order'=>[], 'backurl' => '', ]; return response()->json($data); } $orderData = [ 'order_sn' => $order['order_sn'], 'order_money' => $order['order_money'], 'pay_status' => $order['pay_status'], 'pay_money' => $order['pay_money'], 'order_at' => $order['order_at'] ]; ksort($orderData); $secret = ''; foreach ($orderData as $k => $d) { $secret .= $k . '=' . $d . '&'; } $secret .= 'token=' . $token; $sign = md5(strtolower(trim($secret, '&'))); $orderData['sign']=$sign; $data = [ 'error' => 0, 'msg' => '', 'order' =>$orderData ]; } return response()->json($data); } public function localOrderPost($request) { // $pay = new LocalOrderServices(); // return $pay->order($request); } public function apiOrderPost($request) { $qrcode = new UploadQrcode(); $picinfo = $qrcode->findOneQrcode($request); $data = [ 'url' => $picinfo->thumb, 'order' => $picinfo->id, 'username' => $picinfo->username, 'pic_content' => $picinfo->pic_content, 'type_name' => '展信支付' ]; return view('web.zhanxin.scan', $data); } }