/// <summary> /// ValidateOrder /// </summary> /// <returns>Error message compilation string</returns> public string ValidateOrder() { var errors = ""; if (string.IsNullOrEmpty(ReturnUrl)) { errors += "MISSING VALUE - Return url is required, SetReturnUrl(...).\n"; } var validator = new HostedOrderValidator(); //Check if payment method is EU country, PaymentMethod: INVOICE or PAYMENTPLAN var payment = this as PaymentMethodPayment; if (payment != null && (payment.GetPaymentMethod() == PaymentMethod.INVOICE || payment.GetPaymentMethod() == PaymentMethod.PAYMENTPLAN)) { switch (CrOrderBuilder.GetCountryCode()) { case CountryCode.NL: errors += new IdentityValidator().ValidateNlIdentity(CrOrderBuilder); break; case CountryCode.DE: errors += new IdentityValidator().ValidateDeIdentity(CrOrderBuilder); break; } } errors += validator.Validate(CrOrderBuilder); return(errors); }
private ClientAuthInfo GetPasswordBasedAuthorization() { var auth = new ClientAuthInfo { Username = CrOrderBuilder.GetConfig().GetUsername(PayType, CrOrderBuilder.GetCountryCode()), Password = CrOrderBuilder.GetConfig().GetPassword(PayType, CrOrderBuilder.GetCountryCode()), ClientNumber = CrOrderBuilder.GetConfig().GetClientNumber(PayType, CrOrderBuilder.GetCountryCode()) }; return(auth); }
private void SerializeUnknownCustomer(CreateOrderBuilder order, XmlWriter xmlw) { Action <string, string> doWriteSimple = (name, value) => WriteSimpleElement(name, value, xmlw); xmlw.WriteStartElement("customer"); doWriteSimple("unknowncustomer", "true"); doWriteSimple("country", order.GetCountryCode().ToString().ToUpper()); xmlw.WriteEndElement(); }
public override string Validate(CreateOrderBuilder order) { if (order.GetCustomerIdentity() == null) { Errors += "MISSING VALUE - CustomerIdentity must be set.\n"; } var identityValidator = new IdentityValidator(); switch (order.GetCountryCode()) { case CountryCode.NONE: Errors += "MISSING VALUE - CountryCode is required. Use SetCountryCode().\n"; break; case CountryCode.FI: case CountryCode.DK: case CountryCode.NO: case CountryCode.SE: Errors += identityValidator.ValidateNordicIdentity(order); break; case CountryCode.DE: Errors += identityValidator.ValidateDeIdentity(order); break; case CountryCode.NL: Errors += identityValidator.ValidateNlIdentity(order); break; default: Errors += "NOT VALID - Given countrycode does not exist in our system.\n"; break; } ValidateRequiredFieldsForOrder(order); ValidateOrderRow(order); if (order.GetOrderDate() == DateTime.MinValue) { Errors += "MISSING VALUE - OrderDate is required. Use SetOrderDate().\n"; } if (!String.IsNullOrEmpty(order.GetPeppolId())) { Errors += ValidatePeppolId(order); } return(Errors); }
public override string Validate(CreateOrderBuilder order) { Errors = ""; if (order.GetCountryCode() == CountryCode.NONE) { Errors += "MISSING VALUE - CountryCode is required. Use SetCountryCode(...).\n"; } ValidateClientOrderNumber(order); ValidateCurrency(order); ValidateRequiredFieldsForOrder(order); ValidateOrderRow(order); return(Errors); }
public override string Validate(CreateOrderBuilder order) { Errors = ""; if (order.GetCountryCode() == CountryCode.NONE) { Errors += "MISSING VALUE - CountryCode is required. Use SetCountryCode(...).\n"; } ValidateClientOrderNumber(order); ValidateCurrency(order); ValidateRequiredFieldsForOrder(order); ValidateOrderRow(order); return Errors; }
public override string Validate(CreateOrderBuilder order) { if (order.GetCustomerIdentity() == null) { Errors += "MISSING VALUE - CustomerIdentity must be set.\n"; } var identityValidator = new IdentityValidator(); switch (order.GetCountryCode()) { case CountryCode.NONE: Errors += "MISSING VALUE - CountryCode is required. Use SetCountryCode().\n"; break; case CountryCode.FI: case CountryCode.DK: case CountryCode.NO: case CountryCode.SE: Errors += identityValidator.ValidateNordicIdentity(order); break; case CountryCode.DE: Errors += identityValidator.ValidateDeIdentity(order); break; case CountryCode.NL: Errors += identityValidator.ValidateNlIdentity(order); break; default: Errors += "NOT VALID - Given countrycode does not exist in our system.\n"; break; } ValidateRequiredFieldsForOrder(order); ValidateOrderRow(order); if (order.GetOrderDate() == DateTime.MinValue) { Errors += "MISSING VALUE - OrderDate is required. Use SetOrderDate().\n"; } return Errors; }
private void SerializeCustomer(CreateOrderBuilder order, XmlWriter xmlw) { if (order.GetCustomerIdentity() == null) { return; } CustomerIdentity customer; Action <string, string> doWriteSimple = (name, value) => WriteSimpleElement(name, value, xmlw); if (order.GetIsCompanyIdentity()) { customer = order.GetCompanyCustomer(); } else { customer = order.GetIndividualCustomer(); } xmlw.WriteStartElement("customer"); if (customer.NationalIdNumber != null) //nordic country individual customer type { doWriteSimple("ssn", customer.NationalIdNumber); } else if (!order.GetIsCompanyIdentity()) //euro country individual { doWriteSimple("ssn", customer.IndividualIdentity.BirthDate); } else if (order.GetIsCompanyIdentity() && order.GetCountryCode() != CountryCode.SE) //euro country, Company customer and nationalId not set { doWriteSimple("ssn", customer.CompanyIdentity.CompanyVatNumber); } //Individual customer if (!order.GetIsCompanyIdentity()) { var individualIdentity = customer.IndividualIdentity; if (individualIdentity != null) { doWriteSimple("firstname", individualIdentity.FirstName); doWriteSimple("lastname", individualIdentity.LastName); doWriteSimple("initials", individualIdentity.Initials); } } else //Company customer { doWriteSimple("firstname", customer.FullName); } //Address doWriteSimple("phone", customer.PhoneNumber); doWriteSimple("email", customer.Email); doWriteSimple("address", customer.Street); doWriteSimple("housenumber", customer.HouseNumber); doWriteSimple("address2", customer.CoAddress); doWriteSimple("zip", customer.ZipCode); doWriteSimple("city", customer.Locality); if (order.GetCountryCode() != CountryCode.NONE) { doWriteSimple("country", order.GetCountryCode().ToString().ToUpper()); } xmlw.WriteEndElement(); doWriteSimple("ipaddress", order.GetIsCompanyIdentity() ? order.GetCompanyCustomer().GetIpAddress() : order.GetIndividualCustomer().GetIpAddress()); }
public void TestBuildOrderWithCountryCode() { _order.SetCountryCode(TestingTool.DefaultTestCountryCode); Assert.That(_order.GetCountryCode(), Is.EqualTo(CountryCode.SE)); }
private void SerializeCustomer(CreateOrderBuilder order, XmlWriter xmlw) { if (order.GetCustomerIdentity() == null) { return; } CustomerIdentity customer; Action<string, string> doWriteSimple = (name, value) => WriteSimpleElement(name, value, xmlw); if (order.GetIsCompanyIdentity()) { customer = order.GetCompanyCustomer(); } else { customer = order.GetIndividualCustomer(); } xmlw.WriteStartElement("customer"); if (customer.NationalIdNumber != null) //nordic country individual customer type { doWriteSimple("ssn", customer.NationalIdNumber); } else if (!order.GetIsCompanyIdentity()) //euro country individual { doWriteSimple("ssn", customer.IndividualIdentity.BirthDate); } else if (order.GetIsCompanyIdentity() && order.GetCountryCode() != CountryCode.SE) //euro country, Company customer and nationalId not set { doWriteSimple("ssn", customer.CompanyIdentity.CompanyVatNumber); } //Individual customer if (!order.GetIsCompanyIdentity()) { var individualIdentity = customer.IndividualIdentity; if (individualIdentity != null) { doWriteSimple("firstname", individualIdentity.FirstName); doWriteSimple("lastname", individualIdentity.LastName); doWriteSimple("initials", individualIdentity.Initials); } } else //Company customer { doWriteSimple("firstname", customer.FullName); } //Address doWriteSimple("phone", customer.PhoneNumber); doWriteSimple("email", customer.Email); doWriteSimple("address", customer.Street); doWriteSimple("housenumber", customer.HouseNumber); doWriteSimple("address2", customer.CoAddress); doWriteSimple("zip", customer.ZipCode); doWriteSimple("city", customer.Locality); if (order.GetCountryCode() != CountryCode.NONE) { doWriteSimple("country", order.GetCountryCode().ToString().ToUpper()); } xmlw.WriteEndElement(); doWriteSimple("ipaddress", order.GetIsCompanyIdentity() ? order.GetCompanyCustomer().GetIpAddress() : order.GetIndividualCustomer().GetIpAddress()); }
/* * <currency>SEK</currency><amount>500</amount><vat>100</vat><customerrefno>test_1429280602870</customerrefno><returnurl>https://dev.sveaekonomi.se/webpay-admin/admin/merchantresponsetest.xhtml</returnurl><paymentmethod>DBNORDEASE</paymentmethod><simulatorcode>0</simulatorcode> */ private static Tuple <string, string> PostRequest(PaymentForm form) { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()); form.SetMacSha512( HashUtil.CreateHash(form.GetXmlMessageBase64() + order.GetConfig().GetSecretWord(PaymentType.HOSTED, order.GetCountryCode()))); string data = "mac=" + HttpUtility.UrlEncode(form.GetMacSha512()) + "&message=" + HttpUtility.UrlEncode(form.GetXmlMessageBase64()) + "&merchantid=" + HttpUtility.UrlEncode(form.GetMerchantId()); byte[] formData = Encoding.UTF8.GetBytes(data); var request = WebRequest.Create(order.GetConfig().GetEndPoint(PaymentType.HOSTED)) as HttpWebRequest; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = formData.Length; using (Stream post = request.GetRequestStream()) { post.Write(formData, 0, formData.Length); } string result; string statusCode; using (var response = request.GetResponse() as HttpWebResponse) { using (var reader = new StreamReader(response.GetResponseStream())) { result = reader.ReadToEnd(); } statusCode = response.StatusCode.ToString(); } return(new Tuple <string, string>(statusCode, result)); }