Hỏi về session trong Laravel

Em mới code laravel hiện tại đang code chức năng thanh toán bằng VNPAY cho web bán hàng . Khi submit từ form checkout sẽ gọi đến hàm vn_Payment với các request thông tin cơ bản khách hàng. E đã lưu vào session để sử dụng ở hàm return khi nhận kết quả thanh toán thành công , nhưng tại sao session ở 2 phương thức nó khác nhau vậy mong mn giải thích em với ạ:

-session()->all() tại vn_Payment

-session()->all() tại return

  • Route :
Route::post('/checked-vnpay', [ordersController::class, 'vn_Payment'])->name('checkout.vnpay');
Route::get('/return-vnpay', [ordersController::class, 'return'])->name('return.vnpay');
public function vn_Payment(Request $request)
{
    //dd(session()->all());
    $vnp_TmnCode = "8V0HD6JK";
    $vnp_HashSecret = "FQGXLADAEYWSKHCBDEYOEEWHVMTFDKDW";
    $vnp_Url = "http://sandbox.vnpayment.vn/paymentv2/vpcpay.html";
    $vnp_Returnurl = "http://localhost:8003/return-vnpay";
    $vnp_TxnRef = rand(1,10000);
    $vnp_OrderInfo = "Thanh toán hóa đơn phí dich vụ";
    $vnp_OrderType = 'billpayment';
    $vnp_Amount = $request->input('total_price') * 100;
    $vnp_BankCode = "NCB";
    $vnp_Locale = 'vn';
    $vnp_IpAddr = request()->ip();
    $vnp_Inv_Customer = $request->session()->get('cart');
    $vnp_Inv_Customer = json_encode($vnp_Inv_Customer);
    $inputData = array(
        "vnp_Version" => "2.0.0",
        "vnp_TmnCode" => $vnp_TmnCode,
        "vnp_Amount" => $vnp_Amount,
        "vnp_Command" => "pay",
        "vnp_CreateDate" => date('YmdHis'),
        "vnp_CurrCode" => "VND",
        "vnp_IpAddr" => $vnp_IpAddr,
        "vnp_Locale" => $vnp_Locale,
        "vnp_OrderInfo" => $vnp_OrderInfo,
        "vnp_OrderType" => $vnp_OrderType,
        "vnp_ReturnUrl" => $vnp_Returnurl,
        "vnp_TxnRef" => $vnp_TxnRef,
        "vnp_Inv_Customer"=>$vnp_Inv_Customer,
    );
    if (isset($vnp_BankCode) && $vnp_BankCode != "") {
        $inputData['vnp_BankCode'] = $vnp_BankCode;
    }
    ksort($inputData);
    $query = "";
    $i = 0;
    $hashdata = "";
    foreach ($inputData as $key => $value) {
        if ($i == 1) {
            $hashdata .= '&' . $key . "=" . $value;
        } else {
            $hashdata .= $key . "=" . $value;
            $i = 1;
        }
        $query .= urlencode($key) . "=" . urlencode($value) . '&';
    }
    $vnp_Url = $vnp_Url . "?" . $query;
    if (isset($vnp_HashSecret)) {
        $vnpSecureHash = hash_hmac('sha512', $hashdata, $vnp_HashSecret);
        $vnp_Url .= 'vnp_SecureHash=' . $vnpSecureHash;
    }
    //$this->addOrders($request);
    $customerData = [
        'user_id' => $request->input('id'),
        'fullname' => $request->input('name'),
        'email' => $request->input('email'),
        'phone_number' => $request->input('phone'),
        'address' => $request->input('address'),
        'note' => $request->input('note'),
        'status' =>$request->input('payment_method') == 'vnpay' ? 1: 0,
        'total_money' => $request->input('total_price'),
    ];
    $user_id = $request->input('id');
    //save on session
    session([
        'customer' => $customerData
    ]);
    //dd(session()->all());
    return redirect($vnp_Url);
}

public function returnVN(Request $request)
{
    $vnp_ResponseCode = $request->input('vnp_ResponseCode');
    if ($vnp_ResponseCode === '00') {
        dd(session()->all());
        //return redirect()->route('checkout.index')->with('msg', 'Đặt hàng thành công');
    } else {
        dd('Ko Thanh cong');
    }
    return view('vnpay_return');
}

Bạn check coi session id có bị thay đổi đâu ko?

Bạn kiểm tra xem trong phần config sesion trong env, config/session.php đã đúng chưa nha. Trước đây mình cũng gặp trường hợp này.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?