user(); $sender = Customer::find(auth('customer')->id()); $sender_wallet = new WalletInterface(auth('customer')->id(), 2); // dd($sender_wallet); // dump($sender_wallet->wallet->gold); if ($request->amount > $sender_wallet->wallet->gold) { return response()->json(['message' => 'موجودی حساب کافی نمی باشد!'], 422); } $receiver = Customer::where('virtual_card_number', $request->destination)->first(); // dd($receiver); if (!$receiver) { return response()->json(['message' => "کارت مقصد معتبر نمی باشد!"], 422); } // try { // DB::transaction(function () use ($sender_wallet, $receiver, $request) { // // new TransactionInterface($sender_wallet, [ // "gold" => $request->amount, // 'expire_at' => now(), // 'active' => true, // 'start_at' => now(), // ], 1, false); // // $receiver_wallet = new WalletInterface($receiver->id, 2); // dd($receiver_wallet); // new TransactionInterface($receiver_wallet, [ // "gold" => $request->amount, // 'expire_at' => now(), // 'active' => true, // 'start_at' => now(), // ], 1, true); // // }); // // return response()->json(['message' => 'حواله با موفقیت انجام شد!'], 200); // // } catch (\Exception $e) { // // در صورت بروز خطا، تمام عملیات رول‌بک می‌شود // return response()->json([ // 'message' => 'خطا در انجام تراکنش!', // 'error' => $e->getMessage() // ], 500); // } // dd($receiver->name,$sender->name); new TransactionInterface($sender_wallet, [ "title" => "حواله", "gold" => $request->amount, 'expire_at' => now(), 'active' => true, 'start_at' => now(), 'note' => " حواله از $sender->name به $receiver->name به مقدار $request->amount گرم", ], 10, false); // dump($sender_wallet->wallet->gold); $receiverWallet = new WalletInterface($receiver->id, 2); // dump($reciverWallet->wallet->gold); new TransactionInterface($receiverWallet, [ "title" => "حواله", "gold" => $request->amount, 'expire_at' => now(), 'active' => true, 'start_at' => now(), 'note' => " حواله از $sender->name به $receiver->name به مقدار $request->amount گرم", ], 10, true); // dump($reciverWallet->wallet->gold); return "تراکنش موفق"; } public function virtualCardValidate(Request $request) { $input = str_replace(' ', '', $request->input('cardNumber')); if(strlen($input) !== 16 && strlen($input) !== 11) return response()->json(['message' => 'مقدار وارد شده معتبر نمی باشد!'], 422); if (strlen($input) == 16) { $input = implode('-', str_split($input, 4)); } if (auth('customer')->user()->virtual_card_number == $input || auth('customer')->user()->mobile == $input){ return response()->json(['message' => 'شماره کارت مبدا و مقصد یکسان است!'], 422); } $data = Customer::where('virtual_card_number', $input) ->orwhere('mobile', $input) ->select('name', 'virtual_card_number') ->first(); if($data) return $data; return response()->json(['message' => 'مقصد وجود ندارد!'], 422); // if (strlen(str_replace(' ', '', $request->input('cardNumber'))) == 19) { // return $data = Customer:: // where('virtual_card_number', str_replace(' ', '', $request->input('cardNumber'))) // ->select('name', 'virtual_card_number') // ->first(); // } elseif (strlen(str_replace(' ', '', $request->input('cardNumber'))) == 16) { // $normalized = implode('-', str_split(str_replace(' ', '', $request->input('cardNumber')), 4)); // $data = Customer::where('virtual_card_number', $normalized) // ->select('name', 'virtual_card_number') // ->first(); // return $data ?? response()->json([1], 422); // } elseif (strlen(str_replace(' ', '', $request->input('cardNumber'))) == 11){ // return $data = Customer:: // where('mobile', str_replace(' ', '', $request->input('cardNumber'))) // ->select('name', 'virtual_card_number') // ->first(); // }else { // return response()->json(['message' => 'شماره کارت باید 16 رقم باشد!'], 422); // } } public function havaleList(Request $request){ $id = $request->input('id'); $havale = DB::table('transactions') ->select('gold', 'note', 'created_at', 'unit', 'title', 'customer_id') ->where('title', 'حواله') ->where('customer_id', $id) ->get(); return $havale; } // public function ztest(Request $request) // { // $user = Customer::findOrFail($request->id); //// $user = Customer::find(auth('customer')->id()); // if($user) { // $response = Http::withHeaders([ // 'Content-Type' => 'application/json', // 'Accept' => 'application/json', // ])->post('https://shop.liman.gold/zarinpal', [ // 'amount' => $request->amount, // 'user_name' => $user->name, // 'user_id' => $user->id, // 'currency' => 'IRR', // 'user' => [ // 'name' => $user->name, // 'phone' => $user->mobile, // ], // 'title' => env('APP_NAME'), // 'return_url' => 'https://ghatreh.gold/zarinpal', // ]); // //// دریافت جواب به صورت آرایه // $result = $response->json(); // return redirect($result['pay_link']); // } // return "user not found"; ////// یا نمایش کامل پاسخ //// dd($result); // // } }