public void SetPaymentResponseProperties(VisitableNameValueCollection responseParameters, IPizzaConfiguration bankConfiguration, IPizzaPaymentResponse bankPaymentResponse) { List <BankMessageField> messageFields = bankPaymentResponse.PostParameters.ToList(); _basicMessageFieldFinder.MapResponseParamsToMessageFields(responseParameters, messageFields); VerifyResponseMac(bankConfiguration, messageFields); bankPaymentResponse.IsAutomaticResponse = _basicMessageFieldFinder.FindOrDefault("VK_AUTO", messageFields) == "Y"; bankPaymentResponse.Amount = _basicMessageFieldFinder.FindOrDefaultDecimal("VK_AMOUNT", bankConfiguration.DecimalFormat, messageFields); bankPaymentResponse.RequestStartDateTime = _basicMessageFieldFinder.FindOrDefaultDateTime("VK_T_DATETIME", bankConfiguration.DateTimeFormat, messageFields); string serviceCode = _basicMessageFieldFinder.FindOrDefault("VK_SERVICE", messageFields); bankPaymentResponse.IsPaymentSuccessful = serviceCode == "1111"; bankPaymentResponse.Stamp = _basicMessageFieldFinder.FindOrDefault("VK_STAMP", messageFields); bankPaymentResponse.Currency = _basicMessageFieldFinder.FindOrDefault("VK_CURR", messageFields); bankPaymentResponse.Language = _basicMessageFieldFinder.FindOrDefault("VK_LANG", messageFields); bankPaymentResponse.PaymentMessage = _basicMessageFieldFinder.FindOrDefault("VK_MSG", messageFields); bankPaymentResponse.PaymentOrderNumber = _basicMessageFieldFinder.FindOrDefault("VK_T_NO", messageFields); bankPaymentResponse.PaymentOrderReferenceNumber = _basicMessageFieldFinder.FindOrDefault("VK_REF", messageFields); bankPaymentResponse.PaymentReceiverAccount = _basicMessageFieldFinder.FindOrDefault("VK_REC_ACC", messageFields); bankPaymentResponse.PaymentReceiverName = _basicMessageFieldFinder.FindOrDefault("VK_REC_NAME", messageFields); bankPaymentResponse.PaymentSenderAccount = _basicMessageFieldFinder.FindOrDefault("VK_SND_ACC", messageFields); bankPaymentResponse.PaymentSenderName = _basicMessageFieldFinder.FindOrDefault("VK_SND_NAME", messageFields); bankPaymentResponse.RequestEncoding = _basicMessageFieldFinder.FindOrDefault("VK_ENCODING", messageFields); }
protected override AbstractBankResponse ParseResult(VisitableNameValueCollection visitable, IPizzaConfiguration bankConfiguration) { var bankPaymentResponse = new List <BankMessageField> { new BankMessageField { OrderNr = 1, FieldName = "VK_SERVICE", MaxLength = 4, Value = "1911" }, new BankMessageField { OrderNr = 2, FieldName = "VK_VERSION", MaxLength = 3, Value = "008" }, new BankMessageField { OrderNr = 3, FieldName = "VK_SND_ID", MaxLength = 15 }, new BankMessageField { OrderNr = 4, FieldName = "VK_REC_ID", MaxLength = 15, }, new BankMessageField { OrderNr = 5, FieldName = "VK_STAMP", MaxLength = 20 }, new BankMessageField { OrderNr = 6, FieldName = "VK_REF", MaxLength = 35 }, new BankMessageField { OrderNr = 7, FieldName = "VK_MSG", MaxLength = 95 }, 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 }, new BankMessageField { OrderNr = null, FieldName = "VK_AUTO", MaxLength = 1 }, }; var ipizzaPaymentResponse = new IPizzaPaymentResponse(bankConfiguration.BankId, bankPaymentResponse); _bankMessageMapper.SetPaymentResponseProperties(visitable, bankConfiguration, ipizzaPaymentResponse); return(ipizzaPaymentResponse); }