我正在爲我的新ASP.NET MVC 3項目添加一個「確認付款」頁面。驗證輸入後,我會顯示一個確認頁面,以允許用戶確保他們正確輸入了所有內容。我的下一個問題是如何「存儲」輸入的數據,以便在點擊「確認」後處理付款。很明顯,我不想用完整的信用卡號碼創建隱藏字段。如何在確認頁面上存儲付款處理數據?
我正在使用我們的購物車的會話,但它是否加密數據,以便信用卡號碼不能被黑客入侵?這方面推薦的方法是什麼?我在Google上完成的搜索並沒有真正發揮。
我將顯示他們在前一頁輸入的信息(以確認數據輸入)。正確掩蓋當然的信用卡號碼。
付款信息
的信用卡名稱:名稱
信用卡號碼:XXXX XXXX XXXX 1111
截止日期:10/2011
信用卡驗證碼:100
總共需收費:$ 50.86
當然這個帖子上的所有數字都是假的。
這是我目前使用的代碼。
//
// POST: /Checkout/AddressAndPayment
[HttpPost]
public ActionResult AddressAndPayment(Cart cart, PaymentForm formData)
{
if (cart.Items.Count() == 0)
{
ModelState.AddModelError("", "Sorry your cart is empty!");
}
if (ModelState.IsValid)
{
var viewModel = new AddressPaymentViewModel
{
FormData = formData,
Cart = cart
};
return View("Confirm", viewModel);
}
else
{
var viewModel = new AddressPaymentViewModel
{
FormData = formData,
Cart = cart,
States = States.GetStatesDDL(),
CreditCardTypes = CreditCartTypes.GetCreditCardTypesDDL()
};
return View(viewModel);
}
}
//
// GET: /Checkout/Confirm
public ViewResult Confirm()
{
return View();
}
所以從那裏,當我運行
//
// POST: /Checkout/Confirm
[HttpPost]
public ViewResult Confirm(Cart cart, PaymentForm formData)
{
return View();
}
我需要仍然有表單數據發送到信用卡處理器。
有沒有更好的方法來做到這一點?什麼是「最佳實踐」?
Another method我見過的是用信用卡處理器做一個「PreAuth」和「PostAuth」,不存儲那個數據週期,只是一個訂單ID。
最佳做法是讓知道自己在做什麼的人處理付款,將用戶與顧客和訂單詳細信息反彈給他們,然後彈回給您確認。這也可以幫助您在超安全的基礎架構和審計上花費數十萬美元。 – cjk