Esempio n. 1
0
 public ActionResult Test()
 {
     FormSender.SendMailTest();
     return(View("Index"));
 }
Esempio n. 2
0
        /// <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();
        }
Esempio n. 3
0
        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));
        }