diff --git a/app/Http/Controllers/User/UserTransactionController.php b/app/Http/Controllers/User/UserTransactionController.php index 564f54d..85e429f 100644 --- a/app/Http/Controllers/User/UserTransactionController.php +++ b/app/Http/Controllers/User/UserTransactionController.php @@ -83,7 +83,7 @@ class UserTransactionController extends Controller /** * Store a newly created resource in storage. */ - public function invoiceTransaction($id) + public function invoiceTransaction() { return view('user.transaction.pembeli.invoice-transaction', [ 'TransactionUser' => TransactionUser::HistoryTransaction(), @@ -192,13 +192,11 @@ class UserTransactionController extends Controller 'callbacks' => [ 'finish' => route('user-pembeli.index'), ], - 'enabled_payments' => [ - 'credit_card', 'shopeepay', 'gopay', 'other_qris' - ] + 'enabled_payments' => ['credit_card', 'shopeepay', 'gopay', 'other_qris'], ]; $client = new Client([ - 'verify' => false + 'verify' => false, ]); $auth = base64_encode(env('MIDTRANS_SERVER_KEY')); @@ -207,7 +205,7 @@ class UserTransactionController extends Controller 'body' => json_encode($params), 'headers' => [ 'accept' => 'application/json', - 'authorization' => 'Basic '.$auth, + 'authorization' => 'Basic ' . $auth, 'content-type' => 'application/json', ], ]); @@ -333,7 +331,7 @@ class UserTransactionController extends Controller try { DB::beginTransaction(); - Transaction::where('id', $request->id)->update([ + Transaction::where('id', $request->transaction_id)->update([ 'status_transaksi' => 'sent', ]); @@ -348,12 +346,12 @@ class UserTransactionController extends Controller } TransactionDescription::create([ - 'transaction_id' => $request->id, + 'transaction_id' => $request->transaction_id, 'status' => 'sent', 'background' => 'bg-seller', 'user' => Auth::user()->email, 'judul' => 'fas fa-check', - 'deskripsi' => 'Pesanan telah sampai di tempat pembeli.', + 'deskripsi' => 'Pesanan telah sampai di tempat pembeli. Keterangan: '.$request->keterangan_bukti, 'bukti_foto' => $bukti_foto, ]); @@ -373,6 +371,12 @@ class UserTransactionController extends Controller 'message' => 'Gagal update status karena kesalahan server.', ]); } + + return response([ + 'status' => true, + 'message' => 'Sukses kirim data.', + 'data' => $request + ]); } public function finishTransaction(Request $request) @@ -414,94 +418,103 @@ class UserTransactionController extends Controller public function payTransaction(Request $request) { + $auth = base64_encode(env('MIDTRANS_SERVER_KEY')); + + $response = Http::withOptions([ + 'verify' => false, + ]) + ->withHeaders([ + 'Content-Type' => 'application/json', + 'Authorization' => "Basic $auth", + ]) + ->get('https://api.sandbox.midtrans.com/v2/' . $request->id . '/status'); + + $result = json_decode($response->body(), true); + + $code = substr($result['status_code'], 0, 1); + try { DB::beginTransaction(); - $auth = base64_encode(env('MIDTRANS_SERVER_KEY')); - - $response = Http::withOptions([ - 'verify' => false - ])->withHeaders([ - 'Content-Type' => 'application/json', - 'Authorization' => "Basic $auth", - ])->get('https://api.sandbox.midtrans.com/v2/' . $request->id . '/status'); - - $result = json_decode($response->body(), true); - - if ($result['transaction_status'] == 'settlement') { - $transaction = 'success'; - } elseif ($result['transaction_status'] == 'capture') { - if ($result['fraud_status'] == 'accept') { + if ($code == '4') { + return response()->json([ + 'status' => false, + 'message' => 'Terjadi error di server.', + 'data' => $result, + ]); + } else { + if ($result['transaction_status'] == 'settlement') { $transaction = 'success'; - } elseif ($result['fraud_status'] == 'challenge') { - $transaction = 'challenge'; + } elseif ($result['transaction_status'] == 'capture') { + if ($result['fraud_status'] == 'accept') { + $transaction = 'success'; + } elseif ($result['fraud_status'] == 'challenge') { + $transaction = 'challenge'; + } + } else { + $transaction = 'failure'; } - } else { - $transaction = 'failure'; - } - $query1 = Transaction::where('id', $request->id)->update([ - 'metode_pembayaran' => $result['payment_type'], - 'tanggal_transaksi' => $result['transaction_time'], - 'status_transaksi' => $transaction, - 'status_pembayaran' => $result['transaction_status'], - 'fraud_status' => $result['fraud_status'], - 'signature_key' => $result['signature_key'], - ]); - - if ($transaction == 'success') { - TransactionDescription::create([ - 'transaction_id' => $request->id, - 'status' => 'success', - 'background' => 'bg-buyer', - 'judul' => 'fas fa-money-bill', - 'deskripsi' => Auth::user()->nama_depan . ' telah sukses melakukan pembayaran. Transaksi diteruskan ke penjual.', - 'user' => auth()->user()->email, + Transaction::where('id', $request->id)->update([ + 'metode_pembayaran' => $result['payment_type'], + 'tanggal_transaksi' => $result['transaction_time'], + 'status_transaksi' => $transaction, + 'status_pembayaran' => $result['transaction_status'], + 'fraud_status' => $result['fraud_status'], + 'signature_key' => $result['signature_key'], ]); - DB::commit(); + if ($transaction == 'success') { + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => 'success', + 'background' => 'bg-buyer', + 'judul' => 'fas fa-money-bill', + 'deskripsi' => Auth::user()->nama_depan . ' telah sukses melakukan pembayaran. Transaksi diteruskan ke penjual.', + 'user' => auth()->user()->email, + ]); - return response()->json([ - 'status' => true, - 'message' => 'Pembayaran sukses', - 'data' => $query1, - ]); - } elseif ($transaction == 'challenge') { - TransactionDescription::create([ - 'transaction_id' => $request->id, - 'status' => 'challenge', - 'background' => 'bg-primary', - 'judul' => 'fas fa-clock', - 'deskripsi' => 'Transaksi ' . auth()->user()->email . ' terindikasi masalah, tunggu sesaat hingga admin menyetujui pembayaran.', - 'user' => auth()->user()->email, - 'keterangan' => $result['status_message'], - ]); + DB::commit(); - DB::commit(); + return response()->json([ + 'status' => true, + 'message' => 'Pembayaran sukses', + ]); + } elseif ($transaction == 'challenge') { + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => 'challenge', + 'background' => 'bg-primary', + 'judul' => 'fas fa-clock', + 'deskripsi' => 'Transaksi ' . auth()->user()->email . ' terindikasi masalah, tunggu sesaat hingga admin menyetujui pembayaran.', + 'user' => 'admin@example.net', + 'keterangan' => $result['status_message'], + ]); - return response()->json([ - 'status' => false, - 'message' => 'Pembayaran ditunda hingga disetujui oleh admin', - 'data' => $query1, - ]); - } else { - TransactionDescription::create([ - 'transaction_id' => $request->id, - 'status' => 'failure', - 'background' => 'bg-primary', - 'judul' => 'fas fa-exclamation', - 'deskripsi' => 'Terjadi kegagalan pembayaran.', - 'user' => auth()->user()->email, - 'keterangan' => $result['status_message'], - ]); + DB::commit(); - DB::commit(); + return response()->json([ + 'status' => false, + 'message' => 'Pembayaran ditunda hingga disetujui oleh admin.', + ]); + } else { + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => 'failure', + 'background' => 'bg-primary', + 'judul' => 'fas fa-exclamation', + 'deskripsi' => 'Terjadi kegagalan pembayaran.', + 'user' => 'admin@example.net', + 'keterangan' => $result['status_message'], + ]); - return response()->json([ - 'status' => false, - 'message' => 'Transaksi pembayaran gagal', - 'data' => $query1, - ]); + DB::commit(); + + return response()->json([ + 'status' => false, + 'message' => 'Transaksi pembayaran gagal', + ]); + } } } catch (Throwable $e) { DB::rollBack(); @@ -522,54 +535,56 @@ class UserTransactionController extends Controller $auth = base64_encode(env('MIDTRANS_SERVER_KEY')); $response = Http::withOptions([ - 'verify' => false - ])->withHeaders([ - 'Content-Type' => 'application/json', - 'Authorization' => "Basic $auth", - ])->post('https://api.sandbox.midtrans.com/v2/' . $request->id . '/cancel'); + 'verify' => false, + ]) + ->withHeaders([ + 'Content-Type' => 'application/json', + 'Authorization' => "Basic $auth", + ]) + ->post('https://api.sandbox.midtrans.com/v2/' . $request->id . '/cancel'); $result = json_decode($response->body(), true); - try { - DB::beginTransaction(); + $code = substr($result['status_code'], 0, 1); + if ($code == '4') { + return response()->json([ + 'status' => false, + 'message' => 'Transaksi gagal.', + ]); + } else { + try { + DB::beginTransaction(); - if(in_array($result['status_code'],['412','401'])){ - Transaction::where('id', $request->id)->update([ - 'status_transaksi' => 'failure', - 'status_pembayaran' => 'cancel', - ]); - }else{ Transaction::where('id', $request->id)->update([ 'status_transaksi' => 'failure', 'status_pembayaran' => $result['transaction_status'], ]); + + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => 'cancel', + 'background' => 'bg-buyer', + 'judul' => 'fas fa-exclamation', + 'deskripsi' => auth()->user()->nama_depan . ' telah membatalkan transaksi.', + 'user' => auth()->user()->email, + ]); + + DB::commit(); + + return response()->json([ + 'status' => true, + 'message' => 'Transaksi berhasil dibatalkan', + ]); + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + + return response()->json([ + 'status' => false, + 'message' => 'Transaksi gagal dibatalkan', + ]); } - - TransactionDescription::create([ - 'transaction_id' => $request->id, - 'status' => 'cancel', - 'background' => 'bg-buyer', - 'judul' => 'fas fa-exclamation', - 'deskripsi' => auth()->user()->nama_depan . ' telah membatalkan transaksi.', - 'user' => auth()->user()->email, - ]); - - DB::commit(); - - return response()->json([ - 'status' => true, - 'message' => 'Transaksi berhasil dibatalkan', - ]); - } catch (Throwable $e) { - DB::rollBack(); - - Log::error($e->getMessage()); - - return response()->json([ - 'status' => false, - 'message' => 'Transaksi gagal dibatalkan', - 'data' => $result - ]); } } @@ -577,10 +592,14 @@ class UserTransactionController extends Controller { $auth = base64_encode(env('MIDTRANS_SERVER_KEY')); - $response = Http::withHeaders([ - 'Content-Type' => 'application/json', - 'Authorization' => "Basic $auth", - ])->get('https://api.sandbox.midtrans.com/v2/' . $request->id . '/status'); + $response = Http::withOptions([ + 'verify' => false, + ]) + ->withHeaders([ + 'Content-Type' => 'application/json', + 'Authorization' => "Basic $auth", + ]) + ->get('https://api.sandbox.midtrans.com/v2/' . $request->id . '/status'); $result = json_decode($response->body(), true); @@ -613,4 +632,193 @@ class UserTransactionController extends Controller { return view('user.refund.new-refund', compact('id')); } + + public function onErrorTransaction(Request $request) + { + $auth = base64_encode(env('MIDTRANS_SERVER_KEY')); + + $response = Http::withOptions([ + 'verify' => false, + ]) + ->withHeaders([ + 'Content-Type' => 'application/json', + 'Authorization' => "Basic $auth", + ]) + ->get('https://api.sandbox.midtrans.com/v2/' . $request->id . '/status'); + + $result = json_decode($response->body(), true); + + try { + DB::beginTransaction(); + + Transaction::where('id', $request->id)->update([ + 'status_pembayaran' => $result['transaction_status'], + ]); + + if ($result['transaction_status'] == 'expire') { + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => 'cancel', + 'background' => 'bg-buyer', + 'judul' => 'fas fa-exclamation', + 'deskripsi' => 'Pembayaran sudah expire', + 'user' => 'admin@example.net', + ]); + + DB::commit(); + + return response()->json([ + 'status' => false, + 'message' => 'Pembayaran sudah expire, silahkan buat transaksi baru.', + ]); + } elseif ($result['transaction'] == 'failure') { + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => 'failure', + 'background' => 'bg-buyer', + 'judul' => 'fas fa-exclamation', + 'deskripsi' => auth()->user()->nama_depan . ' telah membatalkan transaksi.', + 'user' => 'admin@example.net', + ]); + + DB::commit(); + + return response()->json([ + 'status' => false, + 'message' => 'Terjadi kesalahan di server saat pembayaran.', + 'data' => $result, + ]); + } else { + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => $result['transaction_status'], + 'background' => 'bg-primary', + 'judul' => 'fas fa-exclamation', + 'deskripsi' => 'Status tidak diketahui', + 'user' => 'admin@example.net', + 'keterangan' => $result['status_message'], + ]); + + DB::commit(); + + return response()->json([ + 'status' => true, + 'message' => 'Terjadi kesalahan di server', + 'data' => $result, + ]); + } + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + + return response()->json([ + 'status' => false, + 'message' => 'Terjadi error di bagian server.', + ]); + } + } + + public function onCloseTransaction(Request $request) + { + $auth = base64_encode(env('MIDTRANS_SERVER_KEY')); + + $response = Http::withOptions([ + 'verify' => false, + ]) + ->withHeaders([ + 'Content-Type' => 'application/json', + 'Authorization' => "Basic $auth", + ]) + ->get('https://api.sandbox.midtrans.com/v2/' . $request->id . '/status'); + + $result = json_decode($response->body(), true); + + $status = $result['transaction_status'] == null ? '' : $result['transaction_status']; + + if ($status == '') { + return response()->json([ + 'status' => true, + 'message' => 'On Close', + ]); + } else { + try { + DB::beginTransaction(); + + if ($result['transaction_status'] == 'expire') { + Transaction::where('id', $request->id)->update([ + 'status_pembayaran' => $result['transaction_status'], + 'status_transaksi' => 'failure', + ]); + + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => 'cancel', + 'background' => 'bg-buyer', + 'judul' => 'fas fa-exclamation', + 'deskripsi' => 'Pembayaran sudah expire', + 'user' => 'admin@example.net', + ]); + + DB::commit(); + + return response()->json([ + 'status' => false, + 'message' => 'Pembayaran sudah expire, silahkan buat transaksi baru.', + ]); + } elseif ($result['transaction'] == 'failure') { + Transaction::where('id', $request->id)->update([ + 'status_pembayaran' => $result['transaction_status'], + 'status_transaksi' => 'failure', + ]); + + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => 'failure', + 'background' => 'bg-buyer', + 'judul' => 'fas fa-exclamation', + 'deskripsi' => auth()->user()->nama_depan . ' telah membatalkan transaksi.', + 'user' => 'admin@example.net', + ]); + + DB::commit(); + + return response()->json([ + 'status' => false, + 'message' => 'Terjadi kesalahan di server saat pembayaran.', + ]); + } else { + Transaction::where('id', $request->id)->update([ + 'status_pembayaran' => $result['transaction_status'], + 'status_transaksi' => 'failure', + ]); + + TransactionDescription::create([ + 'transaction_id' => $request->id, + 'status' => $result['transaction_status'], + 'background' => 'bg-primary', + 'judul' => 'fas fa-exclamation', + 'deskripsi' => 'Status tidak diketahui.', + 'user' => 'admin@example.net', + ]); + + DB::commit(); + + return response()->json([ + 'status' => true, + 'message' => 'Terjadi kesalahan di server', + ]); + } + } catch (Throwable $e) { + DB::rollBack(); + + Log::error($e->getMessage()); + + return response()->json([ + 'status' => false, + 'message' => 'Terjadi error di bagian server.', + ]); + } + } + } } diff --git a/public/assets/css/style.css b/public/assets/css/style.css index a29b547..c15a25f 100644 --- a/public/assets/css/style.css +++ b/public/assets/css/style.css @@ -246,7 +246,7 @@ select.form-control:not([size]):not([multiple]), } textarea.form-control { - min-height: 200px !important; + min-height: 50px !important; } .custom-control { diff --git a/resources/views/User/contact/index.blade.php b/resources/views/User/contact/index.blade.php index e82ed34..a379090 100644 --- a/resources/views/User/contact/index.blade.php +++ b/resources/views/User/contact/index.blade.php @@ -83,8 +83,6 @@ dataDistrict) + ", " + capital(dataCity) + ", " + capital(dataProvince); teksNohp.innerHTML = dataId.nohp; teksEmail.innerHTML = dataId.email; - - console.log(dataId); }); function capital(text) { @@ -101,8 +99,8 @@ text: 'Yakin hapus kontak ini?', icon: 'warning', confirmButtonText: 'Ya, Hapus!', - showDenyButton: true, - denyButtonText: 'Tidak, jangan hapus', + showCancelButton: true, + cancelButtonText: 'Tidak, jangan hapus', }).then((result) => { if (result.isConfirmed) { @@ -155,15 +153,6 @@ }); } }); - } else if (result.isDenied) { - Swal.fire({ - title: 'Gagal', - text: 'Tidak ada kontak yang dihapus', - icon: 'info', - confirmButtonText: 'OK', - }).then(function() { - Swal.close(); - }); } }); }); @@ -192,7 +181,6 @@ url: "{{ route('user-contact.email', ':email') }}".replace(':email', email), type: 'GET', success: function(response) { - console.log(response); if (response.status) { let status = response.message.status Swal.fire({ @@ -234,7 +222,6 @@ }).then(function() { Swal.close(); }); - console.log(error.responseText) check = false; } }); diff --git a/resources/views/User/refund/new-refund.blade.php b/resources/views/User/refund/new-refund.blade.php index 76ebe51..1faa612 100644 --- a/resources/views/User/refund/new-refund.blade.php +++ b/resources/views/User/refund/new-refund.blade.php @@ -28,9 +28,11 @@ - -