• File: ConfirmPushPaymentJob.php
  • Full Path: /var/www/imaliapitest/app/Jobs/ConfirmPushPaymentJob.php
  • Date Modified: 05/19/2025 4:29 PM
  • File size: 2.19 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Jobs;

use App\Http\Controllers\ThirdPartController;
use App\PaymentMethod;
use App\PaymentRequest;
use App\PaymentType;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;

class ConfirmPushPaymentJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $payment_request;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($payment_request)
    {
        //
        $this->payment_request = $payment_request;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        if($this->payment_request->is_payment_confirmed && $this->payment_request->status == 'PENDING'){
            
            $tpc = new ThirdPartController;

            $payment_method = PaymentMethod::query()->where('id', $this->payment_request->payment_methods_id)->first();
            if (!$payment_method) Log::info('[ERROR_PAYMENT_METHOD]', ['payment_request_id' => $this->payment_request->transaction_id, 'msgPt' => 'Metodo de pagamento push nao encontrado', 'msgEn' => 'Push Payment Method not found']);
    
            $payment_type_obj = PaymentType::query()->where('id', $this->payment_request->payment_types_id)->first();
            if (!$payment_type_obj) Log::info('[ERROR_PAYMENT_TYPE]', ['payment_request_id' => $this->payment_request->transaction_id, 'msgPt' => 'Tipo de pagamento push nao encontrado', 'msgEn' => 'Payment Type not found']);
            $resp = $tpc->confirm_push_payment_new25(strtolower($payment_method->name), strtolower($payment_type_obj->name), $this->payment_request->transaction_id);
            if($resp->getStatusCode() == 200) {
                Log::info('[SUCCESS_CONFIRMING_PUSH]', ['payment_request_id' => $this->payment_request->transaction_id, 'data' => $resp->getData(),'statusCode'=>$resp->getStatusCode()]);
            }
        } else {
            echo 'Nothing to excute.';
        }
    }
}