protected override AbstractBankResponse ParseResult(VisitableNameValueCollection visitable, IPizzaConfiguration bankConfiguration) { var bankAuthResponse = new List <BankMessageField> { new BankMessageField { OrderNr = 1, FieldName = "VK_SERVICE", MaxLength = 4 }, new BankMessageField { OrderNr = 2, FieldName = "VK_VERSION", MaxLength = 3 }, new BankMessageField { OrderNr = 3, FieldName = "VK_DATETIME", MaxLength = 24 }, new BankMessageField { OrderNr = 4, FieldName = "VK_SND_ID", MaxLength = 15 }, new BankMessageField { OrderNr = 5, FieldName = "VK_REC_ID", MaxLength = 15, }, new BankMessageField { OrderNr = 6, FieldName = "VK_NONCE", MaxLength = 50 }, new BankMessageField { OrderNr = 7, FieldName = "VK_USER_NAME", MaxLength = 140 }, new BankMessageField { OrderNr = 8, FieldName = "VK_USER_ID", MaxLength = 20 }, new BankMessageField { OrderNr = 9, FieldName = "VK_COUNTRY", MaxLength = 2 }, new BankMessageField { OrderNr = 10, FieldName = "VK_OTHER", MaxLength = 150 }, new BankMessageField { OrderNr = 11, FieldName = "VK_TOKEN", MaxLength = 2 }, new BankMessageField { OrderNr = 12, FieldName = "VK_RID", MaxLength = 30 }, new BankMessageField { OrderNr = null, FieldName = "VK_MAC", MaxLength = 700 }, new BankMessageField { OrderNr = null, FieldName = "VK_ENCODING", MaxLength = 12 }, new BankMessageField { OrderNr = null, FieldName = "VK_LANG", MaxLength = 3 }, }; var ipizzaAuthResponse = new IPizzaAuthResponse(bankConfiguration.BankId, bankAuthResponse); _bankMessageMapper.SetAuthResponseProperties(visitable, bankConfiguration, ipizzaAuthResponse); return(ipizzaAuthResponse); }
public void SetAuthResponseProperties(VisitableNameValueCollection responseParameters, IPizzaConfiguration bankConfiguration, IPizzaAuthResponse bankAuthResponse) { List <BankMessageField> messageFields = bankAuthResponse.PostParameters.ToList(); _basicMessageFieldFinder.MapResponseParamsToMessageFields(responseParameters, messageFields); VerifyResponseMac(bankConfiguration, messageFields); bankAuthResponse.IdCode = _basicMessageFieldFinder.FindOrDefault("VK_USER_ID", messageFields); bankAuthResponse.User = _basicMessageFieldFinder.FindOrDefault("VK_USER", messageFields); bankAuthResponse.Nonce = _basicMessageFieldFinder.FindOrDefault("VK_NONCE", messageFields); bankAuthResponse.UserName = _basicMessageFieldFinder.FindOrDefault("VK_USER_NAME", messageFields); bankAuthResponse.Country = _basicMessageFieldFinder.FindOrDefault("VK_COUNTRY", messageFields); bankAuthResponse.Language = _basicMessageFieldFinder.FindOrDefault("VK_LANG", messageFields); bankAuthResponse.Other = _basicMessageFieldFinder.FindOrDefault("VK_OTHER", messageFields); // ReSharper disable once PossibleInvalidOperationException // Request datetime always exists for auth responses DateTime requestGeneratedAt = _basicMessageFieldFinder.FindOrDefaultDateTime("VK_DATETIME", bankConfiguration.DateTimeFormat, messageFields).Value; bankAuthResponse.RequestDateTime = requestGeneratedAt; bankAuthResponse.IsRequestDateTimeValid = IsRequestDateTimeValid(requestGeneratedAt, _timeProvider.Now); bankAuthResponse.RequestEncoding = _basicMessageFieldFinder.FindOrDefault("VK_ENCODING", messageFields); bankAuthResponse.RequestId = _basicMessageFieldFinder.FindOrDefault("VK_RID", messageFields); bankAuthResponse.Token = _basicMessageFieldFinder.FindOrDefault("VK_TOKEN", messageFields); }