Я добавляю страницу подтверждения вашей оплаты в свой новый проект 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 с процессором кредитной карты и не хранить этот период данных, а только идентификатор заказа.