diff --git a/app/Http/Controllers/BayaranController.php b/app/Http/Controllers/BayaranController.php index 684a50d..69e0fcd 100644 --- a/app/Http/Controllers/BayaranController.php +++ b/app/Http/Controllers/BayaranController.php @@ -62,7 +62,7 @@ class BayaranController extends Controller return view('includes.bayaran.pembayaransag', compact('list_pkb','list_koop')); } - public function PembayaranEngine(Request $request, BillplzService $billplzService) + public function PembayaranEngine(Request $request) { ['email' => $customerEmail, 'notel' => $customerPhoneNumber, 'name' => $customerName, 'icno' => $customerIcno] = auth()->user()->toArray(); @@ -100,6 +100,7 @@ class BayaranController extends Controller }; $company = strtoupper($request->txtcompany); + $billplzService = new BillplzService($company); $bill = $billplzService->createBill([$customerEmail, $customerPhoneNumber, $customerName, $getPaymentSum()],$company); Session::put('company', $company); @@ -217,8 +218,9 @@ class BayaranController extends Controller return view('pembayaran.resit.resitportal', compact('customer_details', 'payment_details', 'cawangan_detail', 'nama_cawangan', 'gadai')); } - public function callback(Request $request, BillplzService $billplzService) + public function callback(Request $request) { + $billplzService = new BillplzService(Session::get('company')); $data = $billplzService->webhook($request->toArray()); $isBillUnpaid = $data['paid'] !== true; @@ -239,11 +241,25 @@ class BayaranController extends Controller 'paid_at' => $data['paid_at']->format('Y-m-d H:i:s'), ]); + $column_updated = (Session::get('company') == 'PKB') ? 'status_pkb' : 'status_koop'; + $value_paid = 'PAID'; + + $exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno) + ->where('user_id', Auth::user()->id) + ->where(function ($query) { + $query->where('status_pkb', 'PENDING') + ->orWhere('status_koop', 'PENDING'); + }) + ->update([ + $column_updated => $value_paid, + ]); + return response(200); } - public function response(Request $request, BillplzService $billplzService) + public function response(Request $request) { + $billplzService = new BillplzService(Session::get('company')); $data = $billplzService->redirect($request->toArray()); $this->serviceCallHttp($billplzService->company); $isBillUnpaid = $data['paid'] !== true; @@ -270,6 +286,19 @@ class BayaranController extends Controller 'paid_at' => $data['paid_at']->format('Y-m-d H:i:s'), ]); + $column_updated = (Session::get('company') == 'PKB') ? 'status_pkb' : 'status_koop'; + $value_paid = 'PAID'; + + $exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno) + ->where('user_id', Auth::user()->id) + ->where(function ($query) { + $query->where('status_pkb', 'PENDING') + ->orWhere('status_koop', 'PENDING'); + }) + ->update([ + $column_updated => $value_paid, + ]); + $transactionOnline = $this->CallableHttp ->get('/api/transaction/online/login', [ 'billplz_id' => $data['id'], @@ -300,7 +329,17 @@ class BayaranController extends Controller $transactionOnline, ); - return view('pembayaran.result.berjayaportal', compact('transactionOnline', 'arraycawangan', 'arraygadai')); + $exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno) + ->where('user_id', Auth::user()->id) + ->where(function ($query) { + $query->where('status_pkb', 'PENDING') + ->orWhere('status_koop', 'PENDING'); + }) + ->first(); + + $exist_carts = optional($exist_carts)->toArray(); + + return view('pembayaran.result.berjayaportal', compact('transactionOnline', 'arraycawangan', 'arraygadai','exist_carts')); } public function failedPayment() diff --git a/app/Http/Requests/PaymentRequest.php b/app/Http/Requests/PaymentRequest.php index 76c830b..a0cf18a 100644 --- a/app/Http/Requests/PaymentRequest.php +++ b/app/Http/Requests/PaymentRequest.php @@ -54,6 +54,10 @@ class PaymentRequest extends FormRequest public function getPembiayaanFromNorujukan() { + if(null !== $this->input('redirect_trolley') && $this->input('redirect_trolley') == 'trolley'){ + return []; + } + $norujukanList = json_decode($this->totalSagInCartInput); $syarikatList = json_decode($this->listSyarikatinCartInput); diff --git a/app/Services/BillplzService.php b/app/Services/BillplzService.php index 5010902..ebd64d0 100644 --- a/app/Services/BillplzService.php +++ b/app/Services/BillplzService.php @@ -33,10 +33,6 @@ class BillplzService public function createBill(array $data,string $company) { - Session::put('company',$company); - $this->setCompany($company); - $this->setupBillplzClient($company); - // dd($company,$this->config); $composed_data = [ $this->config['collection_id'], @@ -74,8 +70,6 @@ class BillplzService public function redirect($request) { - $this->setCompany(Session::get('company')); - $this->setupBillplzClient($this->company); try{ $response = $this->client->bill()->redirect($request); @@ -93,8 +87,8 @@ class BillplzService public function webhook($request) { - $this->setCompany(Session::get('company')); - $this->setupBillplzClient($this->company); + // $this->setCompany(Session::get('company')); + // $this->setupBillplzClient($this->company); try { $response = $this->client->webhook($request); @@ -267,8 +261,6 @@ class BillplzService ? ($billplzEnvironments[$company] ?? config('services.billplz.production')) : ($billplzEnvironments[$company] ?? config('services.billplz.sandbox')); - Log::info($company); - Log::info($this->isBase64($billplzConfig['x_signature'])); $client = Client::make($billplzConfig['api_key'], ($this->isBase64($billplzConfig['x_signature'])) ? $billplzConfig['x_signature'] : base64_encode($billplzConfig['x_signature'])); $client->useVersion('v4'); @@ -285,10 +277,6 @@ class BillplzService $this->callbackUrl = route('pay.callback'); $this->redirectUrl = ['redirect_url' => route('pay.paymentStatus')]; } - - protected function setCompany($company = 'PKB'){ - $this->company = $company; - } protected function isBase64($string) { if (preg_match('/^[A-Za-z0-9+\/=]+$/', $string)) { diff --git a/resources/views/includes/main/navigation.blade.php b/resources/views/includes/main/navigation.blade.php index 3ebd3c2..c6609d3 100644 --- a/resources/views/includes/main/navigation.blade.php +++ b/resources/views/includes/main/navigation.blade.php @@ -109,10 +109,32 @@