Transaction::where('pembeli', Auth::user()->email) ->latest() ->get(), ]); // dd(Transaction::where('pembeli',Auth::user()->email)->get()); } /** * Display a listing of the resource. */ public function indexPenjual() { return view('user.transaction.penjual.index', [ 'transactions' => Transaction::where('penjual', Auth::user()->email)->get(), ]); } public function detailTransaction($id) { return view('user.transaction.pembeli.detail-transaction', [ 'transaction' => Transaction::findOrFail($id), 'trackings' => TransactionDescription::where('order_id', $id)->get(), ]); // dd(Transaction::findOrFail($id)); } /** * Show the form for creating a new resource. */ public function createTransaction(Request $request) { return view('user.transaction.pembeli.new-transaction'); } /** * Store a newly created resource in storage. */ public function invoiceTransaction($id) { return view('user.transaction.pembeli.invoice-transaction', [ 'name' => 'npannisa', 'TransactionUser' => TransactionUser::HistoryTransaction(), ]); } public function storeTransaction(Request $request) { $pembeli = Auth::user()->email; $penjual = $request->get('email_penjual'); $nama_barang = $request->get('nama_barang'); $satuan_barang = $request->get('satuan_barang'); $deskripsi_transaksi = $request->get('deskripsi'); $harga_barang = $request->get('harga_barang'); $jumlah_barang = $request->get('jumlah_barang'); $nama_depan_pembeli = Auth::user()->nama_depan; $nama_belakang_pembeli = Auth::user()->nama_belakang; $nohp_pembeli = Auth::user()->nohp; $nama_penjual = User::where('email', $penjual)->value('nama_depan'); $alamat = ucwords(strtolower(Auth::user()->alamat)); $id = Uuid::uuid4(); $now = Carbon::now()->tz('Asia/Jakarta'); $bulan = $now->format('F'); $tahun = $now->year; // $persentase_keuntungan = Setting::where('status','Active') // ->where('bulan','=',$bulan) // ->where('tahun','=',$tahun)->get(); $persentase_keuntungan = $request->get('persentase_keuntungan'); $total_harga = $request->get('total_harga'); $total_keuntungan = $request->get('total_keuntungan'); $total_bayar = $request->get('total_bayar'); $batas_pembayaran = $now->addDays(1)->toDateTimeString(); $batas_pengiriman_barang_awal = $now->addDays(2)->toDateTimeString(); $batas_pengiriman_barang_akhir = $now->addDays(5)->toDateTimeString(); $params = [ 'transaction_details' => [ 'order_id' => $id, 'gross_amount' => $total_bayar, ], 'item_details' => [ [ 'id' => $nama_barang . time(), 'price' => $harga_barang, 'quantity' => $jumlah_barang, 'name' => $nama_barang, ], [ 'id' => 'BA01', 'price' => $total_keuntungan, 'quantity' => 1, 'name' => 'Biaya Admin', ], ], 'customer_details' => [ 'firts_name' => $nama_depan_pembeli, 'last_name' => $nama_belakang_pembeli, 'email' => $pembeli, 'phone' => $nohp_pembeli, 'billing' => [ 'first_name' => $nama_depan_pembeli, 'last_name' => $nama_belakang_pembeli, 'email' => $pembeli, 'phone' => $nohp_pembeli, 'address' => Auth::user()->alamat, 'city' => Auth::user()->village->district->city->name, 'country_code' => 'IDN', ], ], 'callbacks' => [ 'finish' => 'http://127.0.0.1:8000/user/user-transaction-pembeli/', ], 'expiry' => [ 'start_time' => $now->format('Y-m-d H:i:s P'), 'unit' => 'hours', 'duration' => 24, ], ]; Config::$serverKey = 'SB-Mid-server-8rydZAwKoWuoQ6g_3ot0-K7p'; Config::$isProduction = false; // Set sanitization on (default) Config::$isSanitized = true; // Set 3DS transaction for credit card to true Config::$is3ds = true; $snap_token = Snap::getSnapToken($params); $token = $snap_token; $status = 'pending'; $query = Transaction::create([ 'id' => $id, 'pembeli' => $pembeli, 'penjual' => $penjual, 'nama_barang' => $nama_barang, 'deskripsi_transaksi' => $deskripsi_transaksi, 'satuan_barang' => $satuan_barang, 'harga_barang' => $harga_barang, 'jumlah_barang' => $jumlah_barang, 'persentase_keuntungan' => $persentase_keuntungan, 'total_keuntungan' => $total_keuntungan, 'total_harga' => $total_harga, 'total_bayar' => $total_bayar, 'token' => $token, 'status' => $status, 'batas_pembayaran' => $batas_pembayaran, 'batas_pengiriman_barang_awal' => $batas_pengiriman_barang_awal, 'batas_pengiriman_barang_akhir' => $batas_pengiriman_barang_akhir, ]); if ($query) { TransactionDescription::create([ 'order_id' => $id, 'status' => $status, 'user' => $pembeli, 'judul' => 'fa fa-plus', 'background' => 'bg-buyer', 'deskripsi' => $nama_depan_pembeli . ' telah membuat transaksi baru dengan ' . $nama_penjual, ]); return response()->json([ 'status' => true, 'message' => 'Berhasil menambahkan transaksi. Silahkan lakukan pembayaran.', ]); } else { return response()->json([ 'status' => false, 'message' => 'Gagal menambahkan transaksi.', ]); } } public function updateStatusTransaction(Request $request) { } public function acceptTransaction(Request $request) { } public function paymentTransaction(Request $request, $id) { Config::$serverKey = 'SB-Mid-server-8rydZAwKoWuoQ6g_3ot0-K7p'; Config::$isProduction = false; // Set sanitization on (default) Config::$isSanitized = true; // Set 3DS transaction for credit card to true Config::$is3ds = true; $payment = Trans::status($id); $result = json_decode(json_encode($payment), true); $query = Transaction::where('id', $id)->update([ 'acquire' => $result['acquirer'], 'currency' => $result['currency'], 'fraud_status' => $result['fraud_status'], 'issuer' => $result['issuer'], 'merchant_id' => $result['merchant_id'], 'metode_pembayaran' => $result['payment_type'], 'tanggal_pembayaran' => $result['settlement_time'], 'signature_key' => $result['signature_key'], 'status' => $result['transaction_status'], 'tipe_transaction' => $result['transaction_type'], 'status_code' => $result['status_code'], ]); if ($query) { return response()->json([ 'status' => true, 'message' => 'Pembayaran sukses. Proses akan dilanjutkan ke penjual', ]); } else { return response()->json([ 'status' => false, 'message' => 'Pembayaran gagal', ]); } } /** * Display the specified resource. */ public function show(Transaction $transaction) { // } /** * Show the form for editing the specified resource. */ public function edit(Transaction $transaction) { // } /** * Update the specified resource in storage. */ public function update(Request $request, Transaction $transaction) { // } /** * Remove the specified resource from storage. */ public function destroy(Transaction $transaction) { // } }