platform = $platform; $this->data = $data; $this->queue='pay'; } /** * Execute the job. * * @return void */ public function handle() { $platform=$this->platform; $this->$platform($this->data); } protected function alipay($data) { if ($data['trade_status'] != 'TRADE_SUCCESS' && $data['trade_status'] != 'TRADE_FINISHED') { return ; } $trade_no=substr($data['out_trade_no'], 0, strlen($data['out_trade_no'])-10); $payOrder=PayOrder::where('trade_no', $trade_no)->first(); if (is_null($payOrder) || $payOrder->status != 0) { return ; } $payOrder->status=1; $payOrder->pay_platform_trade_no=$data['trade_no']; $payOrder->pay_time=$data['gmt_payment']; $payOrder->charge=$data; $payOrder->save(); Cache::forget($payOrder->trade_no); $callback=explode('.', $payOrder->callback); $obj=app($callback[0]); call_user_func_array([$obj, $callback[1]], [$payOrder]); } protected function wechat($data) { $trade_no=substr($data['out_trade_no'], 0, strlen($data['out_trade_no'])-10); $payOrder=PayOrder::where('trade_no', $trade_no)->first(); if (is_null($payOrder) || $payOrder->status != 0) { return ; } $payOrder->status=1; $payOrder->pay_platform_trade_no=$data['transaction_id']; $payOrder->pay_time=$data['time_end']; $payOrder->charge=$data; $payOrder->save(); Cache::forget($payOrder->trade_no); $callback=explode('.', $payOrder->callback); $obj=app($callback[0]); call_user_func_array([$obj, $callback[1]], [$payOrder]); } protected function offline($data) { $payOrder=PayOrder::where('trade_no', $data['out_trade_no'])->first(); if (is_null($payOrder) || $payOrder->status != 0) { return ; } $payOrder->status=1; $payOrder->pay_platform_trade_no=$data['out_trade_no']; $payOrder->pay_time=$data['operate_time']; $payOrder->attch=$data['notes']; $payOrder->charge=$data; $payOrder->save(); $callback=explode('.', $payOrder->callback); $obj=app($callback[0]); call_user_func_array([$obj, $callback[1]], [$payOrder]); } }