| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | 
							- <?php
 
- namespace App\Jobs;
 
- use Aix\Pay\Data\PayOrder;
 
- use Illuminate\Bus\Queueable;
 
- use Illuminate\Queue\SerializesModels;
 
- use Illuminate\Queue\InteractsWithQueue;
 
- use Illuminate\Contracts\Queue\ShouldQueue;
 
- use Illuminate\Foundation\Bus\Dispatchable;
 
- use Illuminate\Support\Facades\Cache;
 
- class PayHookJob implements ShouldQueue
 
- {
 
-     use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
 
-     protected $platform;
 
-     protected $data;
 
-     /**
 
-      * PayHookJob constructor.
 
-      * @param $platform
 
-      * @param $data
 
-      */
 
-     public function __construct($platform, $data)
 
-     {
 
-         $this->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]);
 
-     }
 
- }
 
 
  |