trade_no)) { return Cache::get($payOrder->trade_no); } $checkOrder=PayOrder::where('trade_no', $payOrder->trade_no)->first(); if ($checkOrder) { $checkOrder->subject=$payOrder->subject; $checkOrder->detail=$payOrder->detail; $checkOrder->price=$payOrder->price; if (!isset($payOrder->openid)) { $checkOrder->openid=$payOrder->openid; } if (!isset($payOrder->attch)) { $checkOrder->attch=$payOrder->attch; } $payOrder=$checkOrder; } $payOrder->pay_platform = $platform; $payOrder->pay_type = $type; $result=AixPay::$platform()->$type($payOrder); if (isset($payOrder->return_url)) { unset($payOrder->return_url); } $payOrder->save(); Cache::put($payOrder->trade_no, $result, 60); return $result; } public function payHook($platform) { $pay=AixPay::$platform(); try { $data=$pay->verify(); } catch (\Exception $e) { // } $job=new PayHookJob($platform, $data->all()); dispatch($job); return $pay->success(); } /** * 触发线下支付回调 * @param array $data : * [ * "out_trade_no"=>"订单编号", * "operate_admin_id"=>"操作管理员id", * "operate_time"=>"操作时间" * ] * @return bool */ public function offlineHook($data) { $job=new PayHookJob('offline', $data); dispatch_now($job); return true; } public function getTradeNo($id) { // $carbon = Carbon::now(); // return $carbon->year . sprintf('%02d', $carbon->month) . sprintf('%02d', $carbon->day) // . rand(1000, 9999) // . sprintf('%05d', ($carbon->hour * 3600 + $carbon->minute * 60 + $carbon->second)) // . $id; return time().rand(10, 99).$id; } public function close($trade_no) { // } public function testhook(PayOrder $payOrder) { $payOrder->attch="回调收到"; $payOrder->save(); } public function getPayOpenid() { if (session()->has('wechat_pay_openid')) { return session('wechat_pay_openid'); } throw new ResponseException("openid不存在"); } }