Add online payment logger services
This commit is contained in:
@@ -3,23 +3,25 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\PaymentRequest;
|
||||
use App\Models\TransactionOnlineStatus;
|
||||
use App\Services\BillplzService;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Client\Pool;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Money\Money;
|
||||
use App\Services\OnlineTransactionLoggerService;
|
||||
|
||||
class BayaranController extends Controller
|
||||
{
|
||||
|
||||
public function PembayaranAction(PaymentRequest $request)
|
||||
{
|
||||
$request->validated();
|
||||
|
||||
|
||||
$arraybayar = $this->setUpahTawarruq($request->getPembiayaanFromNorujukan());
|
||||
|
||||
|
||||
return view('includes.bayaran.pembayaransag', compact('arraybayar'));
|
||||
}
|
||||
|
||||
@@ -60,12 +62,7 @@ class BayaranController extends Controller
|
||||
return Money::MYR($sum())->add($billPlzTransactionFee);
|
||||
};
|
||||
|
||||
$bill = $billplzService->createBill([
|
||||
$customerEmail,
|
||||
$customerPhoneNumber,
|
||||
$customerName,
|
||||
$getPaymentSum(),
|
||||
]);
|
||||
$bill = $billplzService->createBill([$customerEmail, $customerPhoneNumber, $customerName, $getPaymentSum()]);
|
||||
|
||||
$isRecordTransactionSuccess = $this->recordTransaction($paymentArray, $bill);
|
||||
|
||||
@@ -77,12 +74,10 @@ class BayaranController extends Controller
|
||||
|
||||
return redirect($bill['url'] . '?auto_submit=true');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function recordTransaction($paymentArray, $bill)
|
||||
{
|
||||
|
||||
['name' => $customerName, 'icno' => $customerIcno] = auth()->user()->toArray();
|
||||
|
||||
$getlatestNoSiri = function () {
|
||||
@@ -97,27 +92,45 @@ class BayaranController extends Controller
|
||||
$generateTransactionReferenceNumber = function () use ($getlatestNoSiri) {
|
||||
[$day, $month, $year] = [now()->day, now()->month, now()->format('y')];
|
||||
|
||||
return 'APKB' . $day . $month . $year . sprintf("%08d", $getlatestNoSiri());
|
||||
return 'APKB' . $day . $month . $year . sprintf('%08d', $getlatestNoSiri());
|
||||
};
|
||||
|
||||
Http::pool(fn(Pool $pool) =>
|
||||
collect($paymentArray)->map(fn($payment) =>
|
||||
$pool->arrahn()->post('/api/online/transaction', [
|
||||
'nokp' => $customerIcno,
|
||||
'reference_no' => $generateTransactionReferenceNumber(),
|
||||
'nosiri' => $getlatestNoSiri(),
|
||||
'billplz_id' => $bill['id'],
|
||||
'norujukan' => $payment['norujukan'],
|
||||
'kodcaw' => $payment['kodcaw'],
|
||||
'total_payment' => $payment['bayaran'],
|
||||
'customer_name' => $customerName,
|
||||
])
|
||||
)
|
||||
);
|
||||
try {
|
||||
Http::pool(
|
||||
fn(Pool $pool) => collect($paymentArray)->map(
|
||||
fn($payment) => $pool->arrahn()->post('/api/online/transaction', [
|
||||
'nokp' => $customerIcno,
|
||||
'reference_no' => $generateTransactionReferenceNumber(),
|
||||
'nosiri' => $getlatestNoSiri(),
|
||||
'billplz_id' => $bill['id'],
|
||||
'norujukan' => $payment['norujukan'],
|
||||
'kodcaw' => $payment['kodcaw'],
|
||||
'total_payment' => $payment['bayaran'],
|
||||
'customer_name' => $customerName,
|
||||
]),
|
||||
),
|
||||
);
|
||||
|
||||
Http::arrahn()->put('/api/transaction/online/tagportal', [
|
||||
'billplz_id' => $bill['id'],
|
||||
])->json();
|
||||
OnlineTransactionLoggerService::logs($bill['id'], $paymentArray, 1, TransactionOnlineStatus::INITIALIZED_TRANSACTION);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
|
||||
OnlineTransactionLoggerService::logs($bill['id'], $paymentArray, $e->getMessage(), TransactionOnlineStatus::INITIALIZED_TRANSACTION);
|
||||
}
|
||||
|
||||
try {
|
||||
$response = Http::arrahn()
|
||||
->put('/api/transaction/online/tagportal', [
|
||||
'billplz_id' => $bill['id'],
|
||||
])
|
||||
->json();
|
||||
|
||||
OnlineTransactionLoggerService::logs($bill['id'], $paymentArray, $response, TransactionOnlineStatus::UPDATED_TAG_PORTAL);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
|
||||
OnlineTransactionLoggerService::logs($bill['id'], $paymentArray, $e->getMessage(), TransactionOnlineStatus::UPDATED_TAG_PORTAL);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -128,23 +141,30 @@ class BayaranController extends Controller
|
||||
|
||||
$kpbaru = Auth::User()->icno;
|
||||
|
||||
$customer = Http::arrahn()->get('/api/customers/' . $kpbaru)->json();
|
||||
$customer = Http::arrahn()
|
||||
->get('/api/customers/' . $kpbaru)
|
||||
->json();
|
||||
$customer_details = $customer;
|
||||
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
$date = $current->toDateTimeString();
|
||||
|
||||
$cawangan_info = Http::arrahn()->get('/api/cawangan/' . $payment_details['kodcaw'])->json();
|
||||
$cawangan = Http::arrahn()->get('/api/cawangan/detail/' . $payment_details['kodcaw'])->json();
|
||||
$cawangan_info = Http::arrahn()
|
||||
->get('/api/cawangan/' . $payment_details['kodcaw'])
|
||||
->json();
|
||||
$cawangan = Http::arrahn()
|
||||
->get('/api/cawangan/detail/' . $payment_details['kodcaw'])
|
||||
->json();
|
||||
$cawangan_detail = $cawangan[0];
|
||||
$nama_cawangan = $cawangan_info['details_caw'];
|
||||
|
||||
$gadai_details = Http::arrahn()->get('/api/gadai/norujukan/' . $payment_details['norujukan'])->json();
|
||||
$gadai_details = Http::arrahn()
|
||||
->get('/api/gadai/norujukan/' . $payment_details['norujukan'])
|
||||
->json();
|
||||
$gadai = $gadai_details[0][0];
|
||||
|
||||
return view('pembayaran.resit.resitportal', compact('customer_details', 'payment_details', 'cawangan_detail', 'nama_cawangan', 'gadai'));
|
||||
|
||||
}
|
||||
|
||||
public function callback(Request $request, BillplzService $billplzService)
|
||||
@@ -161,7 +181,6 @@ class BayaranController extends Controller
|
||||
]);
|
||||
|
||||
return response(200);
|
||||
|
||||
}
|
||||
|
||||
Http::arrahn()->put('/api/online/transaction', [
|
||||
@@ -175,7 +194,6 @@ class BayaranController extends Controller
|
||||
|
||||
public function response(Request $request, BillplzService $billplzService)
|
||||
{
|
||||
|
||||
$data = $billplzService->redirect($request->toArray());
|
||||
|
||||
$isBillUnpaid = $data['paid'] !== true;
|
||||
@@ -187,12 +205,13 @@ class BayaranController extends Controller
|
||||
'paid_at' => null,
|
||||
]);
|
||||
|
||||
$transactionOnline = Http::arrahn()->get('/api/transaction/online/login', [
|
||||
'billplz_id' => $data['id'],
|
||||
])->json();
|
||||
$transactionOnline = Http::arrahn()
|
||||
->get('/api/transaction/online/login', [
|
||||
'billplz_id' => $data['id'],
|
||||
])
|
||||
->json();
|
||||
|
||||
return redirect()->route('pay.failed');
|
||||
|
||||
}
|
||||
|
||||
Http::arrahn()->put('/api/online/transaction', [
|
||||
@@ -201,14 +220,15 @@ class BayaranController extends Controller
|
||||
'paid_at' => $data['paid_at']->format('Y-m-d H:i:s'),
|
||||
]);
|
||||
|
||||
$transactionOnline = Http::arrahn()->get('/api/transaction/online/login', [
|
||||
'billplz_id' => $data['id'],
|
||||
])->json();
|
||||
$transactionOnline = Http::arrahn()
|
||||
->get('/api/transaction/online/login', [
|
||||
'billplz_id' => $data['id'],
|
||||
])
|
||||
->json();
|
||||
|
||||
return redirect()->route('pay.success', [
|
||||
'transactionOnline' => $transactionOnline,
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
public function successPayment(Request $request)
|
||||
@@ -216,13 +236,17 @@ class BayaranController extends Controller
|
||||
$transactionOnline = $request->transactionOnline;
|
||||
|
||||
$arraygadai = array_map(
|
||||
fn($x) => Http::arrahn()->get('/api/gadai/norujukan/' . $x['norujukan'])->json()[0][0],
|
||||
$transactionOnline
|
||||
fn($x) => Http::arrahn()
|
||||
->get('/api/gadai/norujukan/' . $x['norujukan'])
|
||||
->json()[0][0],
|
||||
$transactionOnline,
|
||||
);
|
||||
|
||||
$arraycawangan = array_map(
|
||||
fn($x) => Http::arrahn()->get('/api/cawangan/detail/' . $x['kodcaw'])->json()[0],
|
||||
$transactionOnline
|
||||
fn($x) => Http::arrahn()
|
||||
->get('/api/cawangan/detail/' . $x['kodcaw'])
|
||||
->json()[0],
|
||||
$transactionOnline,
|
||||
);
|
||||
|
||||
return view('pembayaran.result.berjayaportal', compact('transactionOnline', 'arraycawangan', 'arraygadai'));
|
||||
@@ -235,14 +259,15 @@ class BayaranController extends Controller
|
||||
|
||||
public function SenaraiPembayaran()
|
||||
{
|
||||
|
||||
$api_url = config('api.url');
|
||||
|
||||
$arraysag = [];
|
||||
|
||||
$auth_user = Auth::user();
|
||||
|
||||
$belum_tebus = Http::arrahn()->get('/api/customers/' . $auth_user['icno'] . '/gadai/' . 'belum_tebus')->json();
|
||||
$belum_tebus = Http::arrahn()
|
||||
->get('/api/customers/' . $auth_user['icno'] . '/gadai/' . 'belum_tebus')
|
||||
->json();
|
||||
|
||||
if (is_array($belum_tebus)) {
|
||||
if (sizeof($belum_tebus) > 0) {
|
||||
@@ -262,7 +287,6 @@ class BayaranController extends Controller
|
||||
private function setUpahTawarruq($pembiayaan)
|
||||
{
|
||||
$getJenisKeuntungan = function ($x) {
|
||||
|
||||
$jenisKeuntungan = [
|
||||
'1' => 'onepercent',
|
||||
'0' => 'asal',
|
||||
@@ -273,7 +297,9 @@ class BayaranController extends Controller
|
||||
|
||||
$getUpahTawarruqPerPembiayaan = function ($x) use ($getJenisKeuntungan) {
|
||||
$jenisKeuntungan = $getJenisKeuntungan($x);
|
||||
$upahTawarruq = Http::arrahn()->get('/api/upahtawarruq/' . $x['kodcaw'] . '/' . $x['norujukan'], ['jeniskeuntungan' => $jenisKeuntungan])->json();
|
||||
$upahTawarruq = Http::arrahn()
|
||||
->get('/api/upahtawarruq/' . $x['kodcaw'] . '/' . $x['norujukan'], ['jeniskeuntungan' => $jenisKeuntungan])
|
||||
->json();
|
||||
|
||||
if ($jenisKeuntungan == 'onepercent') {
|
||||
$x['upah_tawarruq'] = $upahTawarruq['keuntungan'] + $upahTawarruq['ujrah'];
|
||||
|
||||
Reference in New Issue
Block a user