settings = array( 'apiUrl' => env('BANK_JATIM_URL', 'https://jatimva.bankjatim.co.id/'), 'merchant' => env('BANK_JATIM_MERCHANT', '9360011400001347721'), 'hashcode' => env('BANK_JATIM_HASCODE', 'Y1MACZ4B5R'), 'terminalUser' => env('BANK_JATIM_TERMINAL_USER', 'ID2024310949969'), 'username' => env('BANK_JATIM_USERNAME', 'RSUDDRSA3206'), 'password' => env('BANK_JATIM_PASSWORD', '111111'), ); } public function GenerateQris(QrisJatimService $qrisJatimService, Request $request) { $validator = validator($request->all(), [ 'billNumber' => ['required', 'string', 'max:20'], 'purposetrx' => ['required', 'string', 'max:28'], 'storelabel' => ['required', 'string', 'max:100'], 'customerlabel' => ['nullable', 'string', 'max:100'], 'terminalUser' => ['nullable', 'string', 'max:30'], 'expiredDate' => ['nullable', 'string', 'max:30'], 'amount' => ['nullable', 'string'], ], [], [ 'billNumber' => 'Bill Number', 'purposetrx' => 'Purpose Set Trx', 'storelabel' => 'Store Label', 'customerlabel' => 'Customer Label', 'terminalUser' => 'Terminal User', 'expiredDate' => 'Expired Date', 'amount' => 'Amount', ]); try { $validator->validate(); $data = new QrisJatimGenerateRequest($request->all()); $generateHashCode = $this->generateHashCode($this->settings['merchant'], $data->getbillNumber(), $data->getterminalUser(), $this->settings['hashcode']); $data->setmerchantPan($this->settings['merchant']); $data->sethashcodeKey('3C569A8C898FD24243CE0FABD4B6B60E30267C7409A5A06F859416C325482964'); // $data->sethashcodeKey(strtoupper($generateHashCode['hashCode'])); $response = $qrisJatimService->generateApiQris($data); return response()->json($response, 200); } catch (ValidationException $e) { dd($e); } catch (\Exception $e) { dd($e); } } public function PaymentQris(Request $request, QrisJatimService $qrisJatimService){ $validator = validator($request->all(), [ 'billNumber' => ['required', 'string', 'max:20'], 'purposetrx' => ['required', 'string', 'max:28'], 'storelabel' => ['required', 'string', 'max:100'], 'customerlabel' => ['nullable', 'string', 'max:100'], 'terminalUser' => ['nullable', 'string', 'max:30'], 'amount' => ['nullable', 'string'], 'core_reference'=>['nullable', 'string'], 'customerPan'=>['nullable', 'string'], 'merchantPan'=>['nullable', 'string'], 'pjsp'=>['nullable', 'string'], 'invoice_number'=>['nullable', 'string'], 'transactionDate'=>['nullable', 'string'], ]); try{ $validator->validate(); $data = new QrisJatimPaymentRequest($request->all()); $result = new QrisJatimPaymentResponse($request->all()); $proses = $qrisJatimService->updateQris($data, $result); $response = $proses->toArray(); $qrisJatimService->log('bankjatim/PaymentQr', $data->toArray(), $proses->toArray()); return response()->json($response, 200); } catch (ValidationException $e) { dd($e); } catch (\Exception $e) { dd($e); } } public function CheckStatusQris(QrisJatimService $qrisJatimService, Request $request) { $validator = validator($request->all(), [ 'username' => ['required', 'string', 'max:20'], 'password' => ['required', 'string', 'max:28'], 'invoice_number' => ['required', 'string', 'max:100'], ]); try { $validator->validate(); $data = new QrisJatimCheckStatusQrisRequest($request->all()); $response = $qrisJatimService->checkStatusQrisPayment($data); return response()->json($response, 200); } catch (ValidationException $e) { } catch (\Exception $e) { } } public function generateHashCode($marchant, $billNumber, $terminalUser, $hashCode) { $stringToSign = $marchant . $billNumber . $terminalUser . $hashCode; return [ 'hashCode' => hash('sha256',$stringToSign) ]; } }