From 8a62807356634cf6fcd8a5e9de3d0406a4f3a1df Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Fri, 9 Dec 2022 11:54:16 +0800 Subject: [PATCH] fix billplz bill status --- routes/web.php | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/routes/web.php b/routes/web.php index 4eb2cd22..bf507ac5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -7,6 +7,7 @@ use App\Classes\Jobs\FetchLoadedContainersFromVTPortalJob; use App\Classes\Jobs\FetchOrdersFromYDPortalJob; use App\Classes\Jobs\FetchPackingListFromVTPortalJob; use App\Classes\Jobs\FetchWarehouseReceiveListFromVTPortalJob; +use App\Classes\Modules\Orders\Processors\UpdateDoFromVTPortalProcessor; use App\Classes\Modules\Orders\Processors\UpdateDoFromYDPortalProcessor; use App\Classes\Modules\PackingLists\Processors\FetchOrderListsFromYdPortalProcessor; use App\Classes\Modules\PackingLists\Processors\FetchPackingListFromVTPortalProcessor; @@ -18,6 +19,7 @@ use App\Models\PackingList; use Illuminate\Support\Facades\Crypt; use App\Models\Container; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Route; /* @@ -595,4 +597,36 @@ Route::get('/yd/fix', function(){ } }); +Route::get('/billplz/fix', function(){ + $payments = \App\Models\Transaction::where('type', \App\Classes\ValueObjects\Constants\TransactionType::PAYMENT)->where('payment_method',\App\Classes\ValueObjects\Constants\PaymentMethodType::PAYMENT_GATEWAY)->get(); + + foreach ($payments as $payment){ + $response = Http::withBasicAuth(config('billplz.api_key').':', '')->get(config('billplz.base_url').'/api/v3/bills/'.$payment->payment_reference); + + if($response->successful()){ + $data = $response->json(); + + if(!$data['paid'] && $payment->status === \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED) { + echo $payment->id." => Fraud"; + continue; + } + + if($data['paid']){ + $payment->status = \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED; + $payment->save(); + + $packingList = $payment->owner->owner; + if(app()->environment('production')){ + (App()->make(UpdateDoFromVTPortalProcessor::class))->execute($packingList); + (App()->make(UpdateDoFromYDPortalProcessor::class))->execute($packingList); + } + } + }else{ + echo "billplz error"; + } + + } +}); + +