Я добавляю страницу подтверждения вашего платежа в мой новый проект 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();
}
, мне все еще нужно иметь данные формы для отправки процессору кредитной карты.
Есть ли лучший способ сделать это?Что такое «наилучшая практика»?
Другой метод , который я видел, состоит в том, чтобы выполнить «PreAuth» и «PostAuth» с процессором кредитной карты, а не сохранять этот период данных, простоИдентификатор заказа.