/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public override CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult { NewPaymentStatus = capturePaymentRequest.Order.PaymentStatus }; var settings = Services.Settings.LoadSetting <TSetting>(capturePaymentRequest.Order.StoreId); var currencyCode = Services.WorkContext.WorkingCurrency.CurrencyCode ?? "EUR"; var authorizationId = capturePaymentRequest.Order.AuthorizationTransactionId; var req = new DoCaptureReq(); req.DoCaptureRequest = new DoCaptureRequestType(); req.DoCaptureRequest.Version = ApiVersion; req.DoCaptureRequest.AuthorizationID = authorizationId; req.DoCaptureRequest.Amount = new BasicAmountType(); req.DoCaptureRequest.Amount.Value = Math.Round(capturePaymentRequest.Order.OrderTotal, 2).ToString("N", new CultureInfo("en-us")); req.DoCaptureRequest.Amount.currencyID = (CurrencyCodeType)Enum.Parse(typeof(CurrencyCodeType), currencyCode, true); req.DoCaptureRequest.CompleteType = CompleteCodeType.Complete; using (var service = GetApiAaService(settings)) { var response = service.DoCapture(req); var error = ""; var success = IsSuccess(response, out error); if (success) { result.NewPaymentStatus = PaymentStatus.Paid; result.CaptureTransactionId = response.DoCaptureResponseDetails.PaymentInfo.TransactionID; result.CaptureTransactionResult = response.Ack.ToString(); } else { result.AddError(error); } } return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); CheckoutCaptureRequest outrequest = new CheckoutCaptureRequest { checkout_id = capturePaymentRequest.Order.AuthorizationTransactionId }; WebClientResponse wcresponse = ProcessWebClient(outrequest); foreach (string error in wcresponse.Errors) { result.AddError(error); } if (result.Errors.Count <= 0 && wcresponse.state == "captured") { result.NewPaymentStatus = PaymentStatus.Paid; } return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); string googleOrderNumber = capturePaymentRequest.Order.AuthorizationTransactionId; var chargeOrderRequest = new GCheckout.OrderProcessing.ChargeOrderRequest(googleOrderNumber); var chargeOrderResponse = chargeOrderRequest.Send(); if (chargeOrderResponse.IsGood) { result.NewPaymentStatus = PaymentStatus.Paid; result.CaptureTransactionResult = chargeOrderResponse.ResponseXml; } else { result.AddError(chargeOrderResponse.ErrorMessage); } return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public override CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult() { NewPaymentStatus = capturePaymentRequest.Order.PaymentStatus }; var settings = CommonServices.Settings.LoadSetting <TSetting>(capturePaymentRequest.Order.StoreId); string authorizationId = capturePaymentRequest.Order.AuthorizationTransactionId; var req = new DoCaptureReq(); req.DoCaptureRequest = new DoCaptureRequestType(); req.DoCaptureRequest.Version = PayPalHelper.GetApiVersion(); req.DoCaptureRequest.AuthorizationID = authorizationId; req.DoCaptureRequest.Amount = new BasicAmountType(); req.DoCaptureRequest.Amount.Value = Math.Round(capturePaymentRequest.Order.OrderTotal, 2).ToString("N", new CultureInfo("en-us")); req.DoCaptureRequest.Amount.currencyID = (CurrencyCodeType)Enum.Parse(typeof(CurrencyCodeType), Helper.CurrencyCode, true); req.DoCaptureRequest.CompleteType = CompleteCodeType.Complete; using (var service = new PayPalAPIAASoapBinding()) { service.Url = PayPalHelper.GetPaypalServiceUrl(settings); service.RequesterCredentials = PayPalHelper.GetPaypalApiCredentials(settings); DoCaptureResponseType response = service.DoCapture(req); string error = ""; bool success = PayPalHelper.CheckSuccess(_helper, response, out error); if (success) { result.NewPaymentStatus = PaymentStatus.Paid; result.CaptureTransactionId = response.DoCaptureResponseDetails.PaymentInfo.TransactionID; result.CaptureTransactionResult = response.Ack.ToString(); } else { result.AddError(error); } } return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); var apiPayment = new Models.PaymentOrderMechantUpdate { apiId = _manualPaymentSettings.AppId, merch_Id = _manualPaymentSettings.MerchantUniqueId, merch_orderId = capturePaymentRequest.Order.OrderGuid.ToString(), order_status = "CAPTURE" }; using (var client = new HttpClient()) { var content = new StringContent(JsonConvert.SerializeObject(apiPayment)); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (var res = client.PostAsync(String.Format("{0}api/v1/SecurePayment/UpdateOrder", _manualPaymentSettings.AppUrl), content)) { res.Wait(); if (res.Result.IsSuccessStatusCode) { var data = res.Result.Content.ReadAsStringAsync(); var ret = JsonConvert.DeserializeObject <Models.ApiResponse>(data.Result.ToString()); switch (ret.responseCode.ToUpper()) { case "APPROVED": result.NewPaymentStatus = Core.Domain.Payments.PaymentStatus.Paid; break; default: result.AddError(ret.responseText); break; } } else { result.AddError("Unable to process your request, Please try again later."); } } } return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); PrepareAuthorizeNet(); var codes = capturePaymentRequest.Order.AuthorizationTransactionCode.Split(','); var transactionRequest = new transactionRequestType { transactionType = transactionTypeEnum.priorAuthCaptureTransaction.ToString(), amount = Math.Round(capturePaymentRequest.Order.OrderTotal, 2), refTransId = codes[0], currencyCode = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode, }; var request = new createTransactionRequest { transactionRequest = transactionRequest }; // instantiate the contoller that will call the service var controller = new createTransactionController(request); controller.Execute(); // get the response from the service (errors contained if any) var response = GetApiResponse(controller, result.Errors); //validate if (response == null) { return(result); } result.CaptureTransactionId = $"{response.transactionResponse.transId},{response.transactionResponse.authCode}"; result.CaptureTransactionResult = $"Approved ({response.transactionResponse.responseCode}: {response.transactionResponse.messages[0].description})"; result.NewPaymentStatus = PaymentStatus.Paid; return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { CapturePaymentResult result = new CapturePaymentResult(); if (ePayPaymentSettings.UseRemoteInterface) { int pbsResponse = -1; int epayresponse = -1; try { decimal orderTotal = Math.Round(capturePaymentRequest.Order.OrderTotal, 2); string amount = (orderTotal * 100).ToString("0", CultureInfo.InvariantCulture); dk.ditonlinebetalingssystem.ssl.Payment payment = new dk.ditonlinebetalingssystem.ssl.Payment(); payment.capture(Convert.ToInt32(ePayPaymentSettings.MerchantId), Convert.ToInt32(capturePaymentRequest.Order.AuthorizationTransactionId), Convert.ToInt32(amount), "", ePayPaymentSettings.RemotePassword, ref pbsResponse, ref epayresponse); if (epayresponse == -1) { result.NewPaymentStatus = PaymentStatus.Paid; } else { result.AddError("Could not capture: pbsResponse:" + pbsResponse + " epayresponse: " + epayresponse); } } catch (Exception error) { result.AddError("Could not capture: " + error.Message); } } else { result.AddError("Remote interface is not activated."); } return(result); }
public void Capture(AmazonPayClient client, CapturePaymentRequest capture, CapturePaymentResult result) { result.NewPaymentStatus = capture.Order.PaymentStatus; var request = new CaptureRequest(); var currency = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId); request.SellerId = client.Settings.SellerId; request.AmazonAuthorizationId = capture.Order.AuthorizationTransactionId; request.CaptureReferenceId = GetRandomId("Capture"); //request.SellerCaptureNote = client.Settings.SellerNoteCapture.Truncate(255); request.CaptureAmount = new Price() { Amount = capture.Order.OrderTotal.ToString("0.00", CultureInfo.InvariantCulture), CurrencyCode = currency.CurrencyCode }; var response = client.Service.Capture(request); if (response != null && response.IsSetCaptureResult() && response.CaptureResult.IsSetCaptureDetails()) { var details = response.CaptureResult.CaptureDetails; result.CaptureTransactionId = details.AmazonCaptureId; if (details.IsSetCaptureStatus() && details.CaptureStatus.IsSetState()) { result.CaptureTransactionResult = details.CaptureStatus.State.ToString().Grow(details.CaptureStatus.ReasonCode, " "); if (details.CaptureStatus.State == PaymentStatus.COMPLETED) { result.NewPaymentStatus = Core.Domain.Payments.PaymentStatus.Paid; } } } }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); var codes = capturePaymentRequest.Order.AuthorizationTransactionCode.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); _httpClient.DefaultRequestHeaders.Add("developer-id", _paySafePaymentSettings.DeveloperId); _httpClient.DefaultRequestHeaders.Add("user-id", _paySafePaymentSettings.UserId); _httpClient.DefaultRequestHeaders.Add("user-api-key", _paySafePaymentSettings.UserApiKey); var json = JsonConvert.SerializeObject(new { transaction = new Dictionary <string, string> { { "action", "authcomplete" } } }); var data = new StringContent(json, Encoding.UTF8, "application/json"); try { var response = _httpClient.PutAsync($"{GetUrl()}/{codes[0]}", data).Result; var paySafeResponse = JsonConvert.DeserializeObject <PaySafeResponse>(response.Content.ReadAsStringAsync().Result); var transactionResult = paySafeResponse.Transaction; if (response.IsSuccessStatusCode) { result.CaptureTransactionId = $"{transactionResult.Id},{transactionResult.AuthCode}"; result.NewPaymentStatus = PaymentStatus.Paid; } } catch (Exception exception) { _logger.Error("PaySafe Error", exception); result.AddError("Exception Occurred: " + exception.Message); return(result); } return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); WebClient webClient = new WebClient(); NameValueCollection form = new NameValueCollection(); form.Add("x_login", _authorizeNetPaymentSettings.LoginId); form.Add("x_tran_key", _authorizeNetPaymentSettings.TransactionKey); //we should not send "x_test_request" parameter. otherwise, the transaction won't be logged in the sandbox //if (_authorizeNetPaymentSettings.UseSandbox) // form.Add("x_test_request", "TRUE"); //else // form.Add("x_test_request", "FALSE"); form.Add("x_delim_data", "TRUE"); form.Add("x_delim_char", "|"); form.Add("x_encap_char", ""); form.Add("x_version", GetApiVersion()); form.Add("x_relay_response", "FALSE"); form.Add("x_method", "CC"); form.Add("x_currency_code", _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode); form.Add("x_type", "PRIOR_AUTH_CAPTURE"); var orderTotal = Math.Round(capturePaymentRequest.Order.OrderTotal, 2); form.Add("x_amount", orderTotal.ToString("0.00", CultureInfo.InvariantCulture)); string[] codes = capturePaymentRequest.Order.AuthorizationTransactionCode.Split(','); //x_trans_id. When x_test_request (sandbox) is set to a positive response, //or when Test mode is enabled on the payment gateway, this value will be "0". form.Add("x_trans_id", codes[0]); string reply = null; Byte[] responseData = webClient.UploadValues(GetAuthorizeNETUrl(), form); reply = Encoding.ASCII.GetString(responseData); if (!String.IsNullOrEmpty(reply)) { string[] responseFields = reply.Split('|'); switch (responseFields[0]) { case "1": result.CaptureTransactionId = string.Format("{0},{1}", responseFields[6], responseFields[4]); result.CaptureTransactionResult = string.Format("Approved ({0}: {1})", responseFields[2], responseFields[3]); //result.AVSResult = responseFields[5]; //responseFields[38]; result.NewPaymentStatus = PaymentStatus.Paid; break; case "2": result.AddError(string.Format("Declined ({0}: {1})", responseFields[2], responseFields[3])); break; case "3": result.AddError(string.Format("Error: {0}", reply)); break; } } else { result.AddError("Authorize.NET unknown error"); } return(result); }
/// <summary> /// /// </summary> /// <param name="capturePaymentRequest"></param> /// <returns></returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); var order = capturePaymentRequest.Order; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; if (!string.IsNullOrEmpty(order.GetAttribute <string>("TranzilaTK"))) { var settings = _settingService.LoadSetting <TranzillaConfiguration>(capturePaymentRequest.Order.StoreId); var operationLog = new StringBuilder(); int fpay = int.Parse((order.GetAttribute <string>("fpay") ?? "0")); int npay = int.Parse(order.GetAttribute <string>("npay") ?? "0"); int spay = int.Parse(order.GetAttribute <string>("spay") ?? "0"); string cvv = ""; if (order.GetAttribute <string>("cvv") != null) { cvv = order.GetAttribute <string>("cvv"); } operationLog.AppendLine($"default from order : npay = {npay} fpay = {fpay} spay={spay}"); if (npay > 0) { int first = (int)Math.Abs(order.OrderTotal / (npay + 1)); if ((order.OrderTotal / (npay + 1)) % 1 == 0) { fpay = first; } else { fpay = first + 1; } spay = first; } var url = $"https://secure5.tranzila.com/cgi-bin/tranzila71u.cgi?supplier={settings.TokenAuth}&TranzilaPW={order.GetAttribute<string>("TranzilaPW")}&TranzilaTK={order.GetAttribute<string>("TranzilaTK")}&expdate={order.GetAttribute<string>("expdate")}&sum={order.OrderTotal.ToString("#.##")}&cy=1&cred_type=1&tranmode=A&npay={npay}&fpay={fpay}&spay={spay}"; try { operationLog.AppendLine(url); var response = new WebClient().DownloadString(url); operationLog.AppendLine($"Sending Request {url}"); operationLog.AppendLine("Response : " + response); if (response.Contains("Response=000")) { result.NewPaymentStatus = PaymentStatus.Paid; operationLog.AppendLine($" MARK AS PAID "); } else { result.NewPaymentStatus = PaymentStatus.Authorized; operationLog.AppendLine($" MARK AS NOT PAID "); } } catch (Exception e) { operationLog.AppendLine("Error " + e.Message); } finally { EngineContext.Current.Resolve <ILogger>().InsertLog(Core.Domain.Logging.LogLevel.Information, "CapturePAyment", operationLog.ToString()); System.IO.File.WriteAllText(EngineContext.Current.Resolve <HttpContextBase>().Server.MapPath("~/Content/Capture.txt"), url + " " + operationLog.ToString()); } } else { result.NewPaymentStatus = PaymentStatus.Pending; } return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); result.AddError("Capture method not supported"); return result; }
/// <summary> /// Capture an order (from admin panel) /// </summary> /// <param name="order">Order</param> /// <returns>A list of errors; empty list if no errors</returns> public virtual async Task <IList <string> > Capture(Order order) { if (order == null) { throw new ArgumentNullException("order"); } if (!await CanCapture(order)) { throw new GrandException("Cannot do capture for order."); } var request = new CapturePaymentRequest(); CapturePaymentResult result = null; try { //old info from placing order request.Order = order; result = await _paymentService.Capture(request); //event notification await _mediator.CaptureOrderDetailsEvent(result, request); if (result.Success) { var paidDate = order.PaidDateUtc; if (result.NewPaymentStatus == PaymentStatus.Paid) { paidDate = DateTime.UtcNow; } order.CaptureTransactionId = result.CaptureTransactionId; order.CaptureTransactionResult = result.CaptureTransactionResult; order.PaymentStatus = result.NewPaymentStatus; order.PaidDateUtc = paidDate; await _orderService.UpdateOrder(order); //add a note await _orderService.InsertOrderNote(new OrderNote { Note = "Order has been captured", DisplayToCustomer = false, CreatedOnUtc = DateTime.UtcNow, OrderId = order.Id, }); await _mediator.Send(new CheckOrderStatusCommand() { Order = order }); if (order.PaymentStatus == PaymentStatus.Paid) { await _mediator.Send(new ProcessOrderPaidCommand() { Order = order }); } } } catch (Exception exc) { if (result == null) { result = new CapturePaymentResult(); } result.AddError(string.Format("Error: {0}. Full exception: {1}", exc.Message, exc)); } //process errors string error = ""; for (int i = 0; i < result.Errors.Count; i++) { error += string.Format("Error {0}: {1}", i, result.Errors[i]); if (i != result.Errors.Count - 1) { error += ". "; } } if (!String.IsNullOrEmpty(error)) { //add a note await _orderService.InsertOrderNote(new OrderNote { Note = string.Format("Unable to capture order. {0}", error), DisplayToCustomer = false, CreatedOnUtc = DateTime.UtcNow, OrderId = order.Id, }); //log it string logError = string.Format("Error capturing order #{0}. Error: {1}", order.Id, error); await _logger.InsertLog(LogLevel.Error, logError, logError); } return(result.Errors); }
public async Task <IList <string> > Handle(CaptureCommand command, CancellationToken cancellationToken) { var paymentTransaction = command.PaymentTransaction; if (paymentTransaction == null) { throw new ArgumentNullException(nameof(command.PaymentTransaction)); } var canCapture = await _mediator.Send(new CanCaptureQuery() { PaymentTransaction = paymentTransaction }); if (!canCapture) { throw new GrandException("Cannot do capture for order."); } CapturePaymentResult result = null; try { result = await _paymentService.Capture(paymentTransaction); //event notification await _mediator.CapturePaymentTransactionDetailsEvent(result, paymentTransaction); if (result.Success) { paymentTransaction = await _paymentTransaction.GetById(paymentTransaction.Id); paymentTransaction.PaidAmount = paymentTransaction.TransactionAmount; paymentTransaction.CaptureTransactionId = result.CaptureTransactionId; paymentTransaction.CaptureTransactionResult = result.CaptureTransactionResult; paymentTransaction.TransactionStatus = result.NewPaymentStatus; await _paymentTransaction.UpdatePaymentTransaction(paymentTransaction); var order = await _orderService.GetOrderByGuid(paymentTransaction.OrderGuid); if (order != null && paymentTransaction.TransactionStatus == TransactionStatus.Paid) { order.PaidAmount = paymentTransaction.PaidAmount; order.PaymentStatusId = PaymentStatus.Paid; order.PaidDateUtc = DateTime.UtcNow; await _orderService.UpdateOrder(order); await _mediator.Send(new CheckOrderStatusCommand() { Order = order }); if (order.PaymentStatusId == PaymentStatus.Paid) { await _mediator.Send(new ProcessOrderPaidCommand() { Order = order }); } } } } catch (Exception exc) { if (result == null) { result = new CapturePaymentResult(); } result.AddError(string.Format("Error: {0}. Full exception: {1}", exc.Message, exc)); } //process errors string error = ""; for (int i = 0; i < result.Errors.Count; i++) { error += string.Format("Error {0}: {1}", i, result.Errors[i]); if (i != result.Errors.Count - 1) { error += ". "; } } if (!String.IsNullOrEmpty(error)) { //log it await _logger.InsertLog(LogLevel.Error, $"Error capturing order code # {paymentTransaction.OrderCode}. Error: {error}", $"Error capturing order code # {paymentTransaction.OrderCode}. Error: {error}"); } return(result.Errors); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var result = new CapturePaymentResult(); var orderGuid = capturePaymentRequest.Order.OrderGuid; if (orderGuid == Guid.NewGuid()) { result.AddError("Order Unique identifier does not exist!"); return(result); } var transx = _sagePayServerTransactionService.GetSagePayServerTransactionByVendorTxCode(orderGuid.ToString()); if (transx == null) { result.AddError(String.Format("SagePay Server vendor transaction code {0} does not exist.", orderGuid.ToString())); return(result); } var webClient = new WebClient(); var data = new NVPCodec(); data.Add("VPSProtocol", SagePayHelper.GetProtocol()); data.Add("TxType", "RELEASE"); data.Add("Vendor", _sagePayServerPaymentSettings.VendorName); data.Add("VendorTxCode", orderGuid.ToString()); data.Add("VPSTxId", transx.VPSTxId); data.Add("SecurityKey", transx.SecurityKey); data.Add("TxAuthNo", transx.TxAuthNo); data.Add("ReleaseAmount", capturePaymentRequest.Order.OrderTotal.ToString("F2", CultureInfo.InvariantCulture)); var postURL = SagePayHelper.GetSageSystemUrl(_sagePayServerPaymentSettings.ConnectTo, "release"); string strResponse = string.Empty; try { Byte[] responseData = webClient.UploadValues(postURL, data); strResponse = Encoding.ASCII.GetString(responseData); } catch (WebException ex) { result.AddError(String.Format( @"Your server was unable to release this transaction with Sage Pay. Check that you do not have a firewall restricting the POST and that your server can correctly resolve the address {0}. <br/> The Status Number is: {1}<br/> The Description given is: {2}", postURL, ex.Status, ex.Message)); return(result); } if (string.IsNullOrWhiteSpace(strResponse)) { result.AddError(String.Format( @"Your server was unable to register this transaction with Sage Pay. Check that you do not have a firewall restricting the POST and that your server can correctly resolve the address {0}.", postURL)); return(result); } var strStatus = SagePayHelper.FindField("Status", strResponse); var strStatusDetail = SagePayHelper.FindField("StatusDetail", strResponse); switch (strStatus) { case "OK": result.NewPaymentStatus = PaymentStatus.Paid; //result.CaptureTransactionId = null; result.CaptureTransactionResult = strStatusDetail; break; case "MALFORMED": result.AddError(string.Format("Error ({0}: {1}) <br/> {2}", strStatus, strStatusDetail, data.Encode())); return(result); case "INVALID": result.AddError(string.Format("Error ({0}: {1}) <br/> {2}", strStatus, strStatusDetail, data.Encode())); return(result); default: result.AddError(string.Format("Error ({0}: {1})", strStatus, strStatusDetail)); return(result); } return(result); }