public async Task <IActionResult> ConfirmPhone(ConfirmPhoneModel confirm) { var user = confirm.Id == null ? null : await userManager.FindByIdAsync(confirm.Id); if (user != null && user.PhoneNumberConfirmed) { user = null; } if (user != null && ModelState.IsValid) { bool phoneError = false; if (user.PhoneNumber != confirm.Phone) { if (!await usersService.IsPhoneNumberExists(confirm.Phone, user.Id)) { await userManager.SetPhoneNumberAsync(user, confirm.Phone); } else { phoneError = true; ModelState.AddModelError("", "Такой телефон уже зарегистрирован, укажите другой."); } } if (!phoneError) { smsService.SendSms(confirm.Phone, await userManager.GenerateChangePhoneNumberTokenAsync(user, confirm.Phone)); return(RedirectToAction("ConfirmPhoneCheck", new { userId = user.Id })); } } if (user == null) { ModelState.AddModelError("", "Ошибочный запрос"); } return(View()); }
public IActionResult ResultUrl(string IncSum, string OutSum, string InvId, string SignatureValue, string Shp_id, string Shp_type) { if (!string.IsNullOrWhiteSpace(SignatureValue)) { var sMrchPass2 = infoOptions.Value.Robokassa.Pass2; string sCrc = TextUtilites.MD5Hash($"{OutSum}:{InvId}:{sMrchPass2}:Shp_id={Shp_id}:Shp_type={Shp_type}"); if (sCrc.ToLower() == SignatureValue.ToLower()) { double dOutSum; if (double.TryParse(OutSum, NumberStyles.Number, CultureInfo.InvariantCulture, out dOutSum)) { double dIncSum; var sIncSum = IncSum; if (double.TryParse(IncSum, NumberStyles.Number, CultureInfo.InvariantCulture, out dIncSum)) { sIncSum = dIncSum.ToString("0.00", CultureInfo.InvariantCulture); } usersService.AddProlongationPayment(Shp_id, dOutSum, Shp_type, $"Robokassa: сумма с комиссией {sIncSum}"); smsService.SendSms(infoOptions.Value.SmsNotifyPhone, $"Payment: {dOutSum.ToString("0.00", CultureInfo.InvariantCulture)}"); } else { logger.Error($"Invalid OutSum on payment: {OutSum}"); } } else { logger.Error($"Invalid payment: [{OutSum}:{InvId}:[PASS2]:Shp_id={Shp_id}:Shp_type={Shp_type}] <> {SignatureValue}"); } } return(Content($"OK{InvId}")); }