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');
}