internal HpEcommerce.messages.Reversal sendReversalRequest(ReversalRequest request) { HttpWebResponse response = client.sendPostRequest(UrlGenerator.getReversalUrl(CardAcceptor, Environment), HpXmlSerializer.getMessage(typeof(ReversalRequest), request), SharedSecret); if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Forbidden) { return HpXmlSerializer.convertReversal(getResponsestring(response)); } else { throw new HpServerError("Reversal declined.", HpXmlSerializer.convertErrorMessage(getResponsestring(response))); } }
private static string validateReversalRequest(ReversalRequest request) { StringBuilder validationErrors = new StringBuilder(); if (!isValidReversalRequest(request)) { validationErrors.Append("Request has invalid data. It must have either authorization guid, payment guid or refund guid"); } if (validationErrors.Length == 0) { return null; } else { return validationErrors.ToString(); } }
internal static ReversalRequest reversalRequest(string authorizationGuid, string paymentGuid, string refundGuid, string cusomterReference) { ReversalRequest reversalRequest = new ReversalRequest(); reversalRequest.AuthorizationGuid = authorizationGuid; reversalRequest.PaymentGuid = paymentGuid; reversalRequest.RefundGuid = refundGuid; reversalRequest.CustomerReference = cusomterReference; string validationErrors = validateReversalRequest(reversalRequest); if (validationErrors != null) { throw new HpECommerceException("Message failed validation \n" + validationErrors); } return reversalRequest; }
private static bool isValidReversalRequest(ReversalRequest message) { return message.AuthorizationGuid != null || message.PaymentGuid != null || message.RefundGuid != null; }