/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public virtual CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var paymentMethod = LoadPaymentMethodBySystemName(capturePaymentRequest.Order.PaymentMethodSystemName); if (paymentMethod == null) throw new WorkException("Payment method couldn't be loaded"); try { return paymentMethod.Value.Capture(capturePaymentRequest); } catch (NotSupportedException) { var result = new CapturePaymentResult(); result.AddError(_localizationService.GetResource("Common.Payment.NoCaptureSupport")); return result; } catch { throw; } }