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]);
- }
- }
|