public object DynamicValidate(string card, string sum = null) { try { if (int.TryParse(card, out int account)) { object sia_v = new Rc.Validate() { account = account }; decimal decamount; if (sum != null && decimal.TryParse(sum, out decamount)) { ((Rc.Validate)sia_v).amount = decamount; } if (_rc_context.SpExec(Config.DbPrefixRc + "Validate", ref sia_v)) { if (((Rc.Validate)sia_v).error_code == 0 && ((Rc.Validate)sia_v).tariff_price == 0) { return(null); } else { return(new JsonResult(new { text = ((Rc.Validate)sia_v).error_text, price = ((Rc.Validate)sia_v).tariff_price })); } } } return(null); } catch (Exception e) { Log.Write(e); return(null); } }
public IActionResult Index(string card, string sum) { try { var register_toSber = new SberClasses.Register_toSber(); if (string.IsNullOrEmpty(card) || !int.TryParse(card, out int account)) { ViewData[Config.vd_ServerMessagePay] = "Неверный номер"; return(View()); } else { if (sum == null || !decimal.TryParse(sum, out decimal decamount)) { ViewData[Config.vd_ServerMessagePay] = "Неверная сумма"; return(View()); } else { var amount = (int)(decamount * 100); object sia_v = new Rc.Validate() { account = account, amount = decamount }; var isOk = _rc_context.SpExec(Config.DbPrefixRc + "Validate", ref sia_v) && ((Rc.Validate)sia_v).error_code == 0; if (!isOk) { ViewData[Config.vd_ServerMessagePay] = "Номер карты не зарегистрирован"; return(View()); } if (((Rc.Validate)sia_v).tariff_price > 0) { register_toSber.amount = (int)(((Rc.Validate)sia_v).tariff_price * 100); } else { register_toSber.amount = amount; } register_toSber.userName = LNet.apiLogin; register_toSber.password = LNet.apiPass; register_toSber.orderNumber = Guid.NewGuid().ToString(); register_toSber.returnUrl = Config.ReturnUrl + "result"; Config.SetSessionValue(HttpContext, Config.ss_OrderInfo, new Sb.OrderInfo() { amount = decamount, emiss = account, orderNumber = register_toSber.orderNumber }); var register_fromSber = LNet.reqResp <SberClasses.Register_fromSber>(HttpContext, _sb_context, register_toSber, LNet.addr_register, HttpMethod.Post); if ((register_fromSber.errorCode ?? 0) != 0) { ViewData[Config.vd_ServerMessagePay] = register_fromSber.errorMessage;// "Проблема соединения с сервером, попробуйте еще раз"; return(View()); } Config.SetSessionValue(HttpContext, Config.ss_SberValues_register_toSber, register_toSber); Config.SetSessionValue(HttpContext, Config.ss_SberValues_register_fromSber, register_fromSber); ViewData[Config.vd_Redirect] = register_fromSber.formUrl; } } return(View()); } catch (Exception e) { Log.Write(e); try { HttpContext.Session.Clear(); } catch { } return(Index()); //return RedirectToAction("Error"); } }