public ActionResult Test() { FormSender.SendMailTest(); return(View("Index")); }
/// <summary> /// Выполняет отправку информации о платеже в Робокассу. Первый шаг. /// </summary> /// <param name="currencyCode"> </param> public void ProcessPayment(string currencyCode) { var form = new FormSender { FormName = "paymentForm", Method = SendMethod.Post, Url = _paymentUrl }; /* * MrchLogin - login магазина в обменном пункте(обязательный параметр) */ form.Parameters.Add("MrchLogin", _merchantLogin); /* * nOutSum - требуемая к получению сумма. Сумма должна быть указана в той валюте, * которая была указана при регистрации магазина. Если параметр не указан * (пустая строка), то пользователю предоставляется возможность ввести * сумму самостоятельно. Формат представления числа - разделитель точка. */ string outSum = _orderForPay.FinalSumWithDelivery.ToString("F", new CultureInfo("en-US")); form.Parameters.Add("OutSum", outSum); /* Desc - описание покупки, можно использовать только символы английского или * русского алфавита, цифры и знаки препинания. Максимальная длина 100 символов. */ string description = _orderForPay.BriefDescription.Substring(0, Math.Min(_orderForPay.BriefDescription.Length, 100)); form.Parameters.Add("Desc", description); /* * nInvId - номер счета в магазине (должен быть уникальным для магазина). * Может принимать значения от 1 до 2147483647 (2^31-1). */ string invId = _orderForPay.ID.ToString(CultureInfo.InvariantCulture); form.Parameters.Add("InvId", invId); if (!currencyCode.IsNullOrEmpty()) { form.Parameters.Add("IncCurrLabel", currencyCode); } if (!_orderForPay.User.MembershipData.Email.IsNullOrEmpty()) { form.Parameters.Add("Email", _orderForPay.User.MembershipData.Email); } /* * sSignatureValue - контрольная сумма MD5(обязательный параметр) - строка * представляющая собой 32-разрядное число в 16-ричной форме и любом регистре * (всего 32 символа 0-9, A-F). Формируется по строке, содержащей некоторые * параметры, разделенные ':', с добавлением sMerchantPass1 - (устанавливается * через интерфейс администрирования) т.е. * sMerchantLogin:nOutSum:nInvId:sMerchantPass1[:пользовательские параметры, в отсортированном порядке] * К примеру если переданы параметры shpb=xxx и shpa=yyy то подпись формируется * из строки ...:sMerchantPass1:shpa=yyy:shpb=xxx */ string signature = GetPaymentSignature(new[] { _merchantLogin, outSum, invId, _password1 }, null); form.Parameters.Add("SignatureValue", signature); form.Send(); }
public ActionResult Submit(T viewModel, HttpPostedFileBase[] files) { ViewBag.FormID = FormID.ToString(); ViewBag.FormName = FormName; ViewBag.FormTechName = FormTechName; var form = ((IForm)viewModel); form.Process(); ModelState.Clear(); TryValidateModel(viewModel); string EncodedResponse = Request.Form["g-Recaptcha-Response"]; bool IsCaptchaValid = ReCaptcha.Validate(EncodedResponse) == "true"; if (!IsCaptchaValid) { ModelState.AddModelError("", "Neplatná captcha!"); } TryValidateModel(viewModel); try { /*Lopp for multiple files*/ foreach (HttpPostedFileBase file in files) { /*Geting the file name*/ string filename = System.IO.Path.GetFileName(file.FileName); /*Saving the file in server folder*/ var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), filename); file.SaveAs(path); /*HERE WILL BE YOUR CODE TO SAVE THE FILE DETAIL IN DATA BASE*/ } } catch { } if (ModelState.IsValid) { FormSender.SendFormData( Server.MapPath("~/App_Data/uploads"), files, FormName, form.SavePDF(), Encoding.UTF8.GetBytes(form.SaveXML())); FormSender.SendConfirmationEmail( form.ApplicantEmail, (Guid)form.Identifikator, (DateTime)form.DatumPodani); try { /*Lopp for multiple files*/ foreach (HttpPostedFileBase file in files) { /*Geting the file name*/ string filename = System.IO.Path.GetFileName(file.FileName); /*Saving the file in server folder*/ var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), filename); System.IO.File.Delete(path); /*HERE WILL BE YOUR CODE TO SAVE THE FILE DETAIL IN DATA BASE*/ } } catch { } return(View("Sent", viewModel)); } return(View(FormTechName, viewModel)); }