internal HpEcommerce.messages.Authorization sendAuthorizationRequest(AuthorizationRequest request) { HttpWebResponse response = client.sendPostRequest(UrlGenerator.getAuthorizationUrl(CardAcceptor, Environment), HpXmlSerializer.getMessage(typeof(AuthorizationRequest), request), SharedSecret); if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Forbidden) { return HpXmlSerializer.convertAuthorization(getResponsestring(response)); } else { throw new HpServerError("Authorization declined.", HpXmlSerializer.convertErrorMessage(getResponsestring(response))); } }
internal static AuthorizationRequest authorizationRequest(string paymentScenario, string currency, string amount, string token, string cardNumber, string expiryDateMMYY, string cardVerificationCode, string customerReference) { AuthorizationRequest authorizationRequest = new AuthorizationRequest(); authorizationRequest.PaymentScenario = paymentScenario; authorizationRequest.Currency = currency; authorizationRequest.Amount = amount; authorizationRequest.Token = token; authorizationRequest.CardNumber = cardNumber; authorizationRequest.ExpiryDateMMYY = expiryDateMMYY; authorizationRequest.CardVerificationCode = cardVerificationCode; authorizationRequest.CustomerReference = customerReference; string validationErrors = validateAuthorizationRequest(authorizationRequest); if (validationErrors != null) { throw new HpECommerceException("Message failed validation \n" + validationErrors); } return authorizationRequest; }
private static string validateAuthorizationRequest(AuthorizationRequest request) { StringBuilder validationErrors = new StringBuilder(); ValidateCommonFields(request, validationErrors); if (!hasValidAuthorizationCardData(request)) { validationErrors.Append("Request has invalid card data. It must have either Card Number and Expiry date or Token"); } if (validationErrors.Length == 0) { return null; } else { return validationErrors.ToString(); } }
private static bool hasValidAuthorizationCardData(AuthorizationRequest message) { return (message.CardNumber != null && message.ExpiryDateMMYY != null) || message.Token != null; }